2011-10-27 19 views
0

私のアプリケーションでは、GetProcAddressCreateProcessのようなAPIを使用していますが、アンチウィルスによって悪意のあると判断されることがあります。APIが監視されているかどうかのチェック

私がしようとしているのは、特定のAPIが監視されているか、フックされているかどうかをチェックすることです。そうであれば、コードのその部分を呼び出しません。

特定のAPIがフックされているかどうかを確認するにはどうすればよいですか?

これはC.

おかげで書かれたWindowsアプリケーションです。

+3

APIモニタ検出器がフックされていないことを確認するにはどうすればよいですか? –

+0

'GetProcAddress'と' CreateProcess'だけでAVsのフラグを立てるべきではありません。あなたは 'CreateRemoteThread'を使ってリモートDLL注入を行っていますか?その場合、関数のシグネチャはマルウェアのものと一致する可能性があります。 – JosephH

+0

dll注入がなく、リモートスレッドを作成しません。これらの2つのAPIは、プログラムのさまざまな部分で異なることをしています。 APIフックを確認する方法を知っていますか? –

答えて

1

win32では、非常に小さな機能しかカバーしていないSetWindowsHookEx()http://msdn.microsoft.com/en-us/library/windows/desktop/ms644990)の機能のほかにフックを検出および/または配置する方法はありません。

フックを検出する方法は、フックの適用方法によって異なります。

フックを配置するには、2つの人気の方法がありますフックを配置するさまざまな方法についての詳細(長所/短所)について

を上書き

  • コードにパッチを適用

    1. インポート/エクスポートテーブルには、ここで読むことを検討してくださいhttp://help.madshi.net/ApiHookingMethods.htm

      フックする各方法は、それを検出する別の方法を必要とします。

      上記のように配置されたフックを検出する方法については、「ApiHookCheckアルゴリズム」のhttp://www.security.org.sg/code/apihookcheck.htmlを参照してください。このページには、ではなくのテストを行ったサンプルソースがあります。

  • +0

    それは私が必要とした情報です。ありがとう! –

    +0

    ApiHookCheckアルゴリズムへのリンクはもう働きません。誰かがそれへの良いリンクを提供してもらえますか? – Benny

    +1

    @Benny:これは始めるべきポイントかもしれません。http://security.stackexchange.com/q/17904/36769 – alk

    関連する問題