■ VisualC++(MFC限定)相談室 5■

このエントリーをはてなブックマークに追加
574デフォルトの名無しさん
市販のキーロガーやスパイウェアってタスクマネージャに表示されないように
グローバルフック仕込んでいるみたいだけど、あれってどうやるんですか?

例えば、
a.exe がフックをセットするプログラムで、
a.dll がフックプロシージャを含む dll だとします。

Windows開始時に起動される a.exe がデスクトップを表示している
explorer.exe に a.dll のフックプロシージャをセットし、
アンフックせずに終了すれば、explorer.exe 内に a.dll が常駐
した状態になるんでしょうか。
ただ試してみたところ、a.exeでアンフックせずに終了しても自動的に
アンフックされてしまったみたいでした。
Explorer側に入り込んだフックプロシージャ内で、再度自分自身に
フックをかければOKなのでしょうか。
最初にフックをセットするプログラム側では、上記処理が完了するまで
終了を待つことにすればよいかもしれませんが、イマイチ実現方法が
かりません。

どなたか実現方法をご存知のかたいらっしゃいませんか?