アンチキーロガーソフトの仕組みについて
アンチキーロガーソフトの仕組みについて
アンチキーロガーソフト(有名なところでいうと「ノーロガー」https://www.vector.co.jp/soft/winnt/util/se337673.html)はどのような仕組みでキーロガーの無効化しているのでしょうか?
私自身、C++でWindowsフック(グローバルフック WH_KEYBOARD_LL)を用いたキーロガーを開発していたのですが、ノーロガーにすべて防がれてしまい、どのような仕組みで無効化しているか気になった次第です。
もしかして、WH_DEBUGでフックの前に呼び出しているのかなとか思ったのですが、キーコードを変えてしまえば正常にキー入力が出来ませんから、キーロガーのフックだけを巧みにかわしてプログラムにメッセージを送っているということになります。
以下に私のキーロガーのログファイルを記します。
Code=1とはKBDLLHOOKSTRUCT構造体のvkCodeに送られてきたキーコードです。
M 18:03:22 [左クリック]
K 18:03:25 A
K 18:03:25 B
K 18:03:25 C
M 18:03:28 [左クリック] ←ノーロガー起動
K 18:03:29 [OEM固有] Code = 1
K 18:03:29 [OEM固有] Code = 1
K 18:03:29 [OEM固有] Code = 1
K 18:03:30 [OEM固有] Code = 1
K 18:03:31 [OEM固有] Code = 1
K 18:03:31 [OEM固有] Code = 1
K 18:03:32 [OEM固有] Code = 1
K 18:03:32 [OEM固有] Code = 1
K 18:03:32 [OEM固有] Code = 1
K 18:03:33 [OEM固有] Code = 1
K 18:03:33 [OEM固有] Code = 1 ←ノーロガー終了
K 18:03:37 1
K 18:03:38 2
K 18:03:38 3
M 18:03:41 [左クリック]
K 18:03:42 [L-Alt]
K 18:03:42 [F3]
K 18:03:42 [--END KEY LOGGER--]