質問: APIが監視されているかどうかのチェック(フックされていますか?) 私のアプリケーションでは、 `GetProcAddress` や `CreateProcess` のようないくつかのAPIを使用して、アンチウィルスが悪意のあるとフラグを立てることがあります。 私がやろうとしているのは、特定のAPIが監視されているかどうかをチェックしていれば、コードのその部分を呼び出さないということです。 特定のAPIがフックされているかどうかを確認するにはどうすればよいですか? これは、Cで書かれたWindowsアプリケーションです。 ありがとう。
回答: win32では、( `SetWindowsHookEx()`( http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990 )非常に小さな機能のみをカバーする機能) 。 フックを検出する方法は、フックの適用方法によって異なります。 フックを配置するには2つの一般的な方法があります: 1. テーブルのパッチをインポート/エクスポートする 2. コードの上書き フックを配置するさまざまな方法に関する詳細(賛否両論)については、ここをクリックしてください。 http://help.madshi .net/ApiHookingMethods.htm 。 フックする各方法は、それを検出するために異なるアプローチを必要とします。 上記のように配置されたフックを検出する方法については、「ApiHookCheckアルゴリズム」を参照してください。 http:// www.security.org.sg/code/apihookcheck.html をご覧ください。このページには、私が *not* テストしたサンプルソースがあります。