【Ubuntu】キーボードのログを取得する


キーボードロガー

自分が打ったキーボードのログが欲しい時ってありますよね(ないか)。
そんな時におすすめなのが、「logkeys」です。

1 インストール

インストールは簡単で、以下の1行で入ります。

sudo apt-get install logkeys

2 使用するための設定

インストールは簡単ですが、使うにはいろいろと設定が必要です。

2.1 キーボードのイベント情報の取得

以下のコマンドを打つと、ターミナルに入力デバイスの設定一覧が表示されます。

cat /proc/bus/input/devices

表示される設定一覧です(とても長いのでキーボード部分のみ掲載)。

I: Bus=0003 Vendor=04d9 Product=1818 Version=0110
N: Name="USB Keyboard"
P: Phys=usb-0000:00:14.0-12/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12:1.1/0003:$4D9:1818.0006/input/input8
U: Uniq=
H: Handlers=kbd event8 
B: PROP=0
B: EV=13
B: KEY=300a010802000 0 0 1078002044000 603878d801d6e9 1e0000000000$0 0
B: MSC=10

上記の設定で必要なのは、Handlers=kbd event8のイベント番号です。

2.2 キーボードマップのインストール

次に、使っているキーボードが日本語対応のキーボードなのか、英字キーボードなのかという
キーボードマップ情報を取得する必要があるので、キードードマップのインストールをします。

 sudo apt-get install console-data

すると以下の設定画面が立ち上がりますので、設定をしていきます。

[了解]を選択します。

[完全なリストからキーマップを選択]

日本語キーボードを使用しているのならば、上記の設定を選択します。

もし、インストールの際に、設定を取り消してしまったり、設定を間違えた場合は、以下のコマンドで同じ設定ができます

sudo dpkg-reconfigure console-data

3 キーロガーを使用する

ここまでの設定でキーロガーが起動できるようになります。
ここからは使用方法を書いていきます。

3.1 キーロガーの起動

以下のコマンドで起動します。

sudo logkeys -s -o ~/logtest.txt -d /dev/input/event8
  • -s がスタート
  • -o がログデータ出力先ファイル
  • -d が入力デバイスの情報

入力デバイスの情報には、上記の cat /proc/bus/input/devices で調べたイベント番号を入れてください。
起動したあとは、入力したコマンドなどがログファイルに出力され続けます。

3.2 キーロガーの終了

以下のコマンドでキーロガーを止めることができます。

sudo logkeys -k

3.3 ログの確認

ログの確認はsudo権限でしか確認できないので、sudoでテキストエディタを起動します。

sudo vi logtest.txt 

テキストファイルの中身は以下のようになります。

Logging started ...

2017-08-20 22:29:51+0900 > sudo apt-get update
2017-08-20 22:30:07+0900 > sudo log<Tab>k<Tab>-k
2017-08-20 22:30:21+0900 > 

Logging stopped at 2017-08-20 22:30:21+0900

以上です。

参考サイト

[1] コンソールでのキーボード設定
[2] Ubuntuにキーマップをインストールする