SetWindowsHookExと呼ばれるアプリケーション(例えば、私、または外部プロセスなど)がフックを外すことができますか?フックを最初に作ったのは私ではなかったので、元のフックの変数やポインタは一切ありません。SetWindowsHookEx実行時に作成されたフックを無効にすることはできますか?
答えて
私はできないと思います。あなたが他のフックが登録される前に、あなたが何らかの形で、独自のフックを作成することができればはそうあなたが、ところでUnhookWindowsHookEx()
のHMMとそれを外すことができます)は、SetWindowsHookEx(に登録されたフックへのハンドルを必要とする(つまり、アプリケーションの起動時に)、そのフックでCallNextHookEx()にコールしないようにして、後続のフックを呼び出さないようにすることができます。チェックアウトの価値があるかもしれません。私はこれがすべてのタイプのフックで可能ではないかもしれないと考えています。
いいえ、ありません。
戻ってくるHHOOK was a link in the chain of hooksが呼び出されるように、あなたは取得したHHOOKでいくつかのゲームをプレイしてしまったかもしれません(NT時代以前)。それでも、私はそれが可能であるかどうかはわかりません。
今日、Windowsはチェーン内の次のフックの呼び出しをあなたに委任しません(したがって、廃止されたパラメータはCallNextHookExになります)。そして、HHOOKはもう登録しなかったフックに手を差し伸べることはできません。
はより適切に、そこには良いですし、これを行うための方法を支持しました。
ルートキットをインストールし、Windowsの内部構造を詳しく調べて、フックチェーンをそのように見つけることができます。それは明らかにばかげて危険な長さになるでしょう。
(そこソリューションを引っ掛け無数のAPIの1つを介して、Detoursが人気のようです)フッキングSetWindowsHookExとCallNextHookExにプリNT規約に準拠しているアプリケーションのためにそこにあなたの道のほとんどを得ることができます。その要点は、SetWindowsHookExの呼び出し後すぐに新しいフックを解除し、CallNextHookExに渡されたフック(自分のものではない)をフック解除します。 「きれいな」アプリケーションを保証するには、既に呼び出されたフックを強制的に呼び出して、フック解除することができるようにするために、いくつかのイベントをシミュレートする必要があります。また、CallNextHookExにNULLを渡す過去8年以上に書かれたアプリケーションに遭遇するとすぐに、このレジームは失敗します。
それは、あなたのアプリが登録されませんでしたHHOOKsを外しために(多分)可能技術的であってもそう、あなたはおそらく、それはあなたが別の、それほどひどく脆い道後にしているであるものは何でも達成しようとして方がいいでしょう。
実際、私はそれが可能であることを発見したと思います。フックCallNextHookはフックのフックIDを返します。フックIDはフック解除に使用できます。
プロの奇妙さと「正しい」答えに対する欲求の両方から。この回答でこの効果を得るためのコードをいくつか入手できますか? –
DeviareというAPIを使用しただけで、Googleに移行できます。これは、5行のように関数をフックするので、CallNextHookをフックし、フック!= 0の場合はUnhookWindowsEx()を呼び出します。 –
あなたはCallNextHookExにWindows Me以降で接続する必要はありませんでしたので、これはいくつかのアプリケーションで壊れてしまいます。また、フックは、フックを外すことができる前に少なくとも1回は実行しなければならないので、「このアプリケーションは[ここでフックの種類]でフックされません」と確実には言えません。 それにかかわらず、私は自分の答えを更新してより完全なものにするつもりです。 –
- 1. 実行時にオプションでJsonIgnore属性を無効にすることはできますか?
- 2. Extbaseフック - レコード作成時にコードを実行する
- 3. 実行時にgprofを有効または無効にしますか?
- 4. 実行時に作成されたワイヤアップボタン
- 5. ローカルに作成されたスナップショットで、より新しいリモートスナップショットを無効にすることができます
- 6. 実行時に "C"文を作成して実行することはできますか?
- 7. time.sleep()を一時的に無効にすることはできますか?
- 8. 実行時に作成されたコントロールを削除します
- 9. 作成時にデータベースに行を作成するためのActiveRecordフック
- 10. EC2インスタンスが作成された直後にタスクを実行することはできますか?
- 11. 実行時にOpenMPをローカルで有効/無効にする
- 12. インデックス作成時にソーシャルネットワークでJavaScriptを実行できますか?
- 13. 各デバッグ実行時にアクセシビリティサービスが無効にされる
- 14. ViewContainerRefで作成された要素を無効にすることは可能ですか?
- 15. コンパイル時/実行時にマークされた文字列のグローバルリストを生成することは可能ですか?
- 16. 実行時/起動時にSystem.setOutとsetErrを無効にするには?
- 17. 実行時にサービスを有効または無効にするためにJersey2のテクニックが必要です
- 18. AWS Cloudfront Signed URLを作成後に無効化または取り消すことはできますか?
- 19. Spring java config - 実行時に作成されたbeanのリストを作成する
- 20. SQLALCHEMY_TRACK_MODIFICATIONSを無効にすることはできますか?
- 21. control-Cを無効にすることはできますか?
- 22. フィルタテキストを無効にすることはできますか?
- 23. [アプリケーションエラー]ダイアログボックスを無効にすることはできますか?
- 24. パラメータパターンマッチングを無効にすることはできますか?
- 25. コントロール:HoverButtonを無効にすることはできますか?
- 26. a:visitedを無効にすることはできますか?
- 27. ViewerJS:ボタンを無効にすることはできますか?
- 28. C++でファイルを作成するとき、作成されたファイルはどこに保存されますか?
- 29. 実行時にインターセプタを無効/有効にする
- 30. 起動時にAIRアプリケーションを実行させることはできますか?
今のところ解決策はありませんが、これが可能でなければならないと思います。基本的に、すべてのアンチスパイウェア/ウィルススキャナは、これを使用するか、または同等の機能を使用して、キーロガーを検出したり、解除したりする必要があります。良い質問! – merkuro
"Rootkit Unhooker 3.8"というプログラムが見つかりました。あなたが望むものはどれくらいですか?まだ長いコードサンプルはありません:http://www.rootkit.com/newsread.php?newsid=902私はこのページを正当なものと見なしますが、おそらく古いバージョンをより信頼できるサイト。 – merkuro
私は、ルートキットがHHOOKに関係するとは思わない。彼らはシステムの中で非常に深いので、私は彼らがその特定の仕組みを必要とするかどうか疑います。 –