APIが監視されているかどうかのチェック(フックされていますか?)

私のアプリケーションでは、 GetProcAddressCreateProcess のようないくつかのAPIを使用して、アンチウィルスが悪意のあるとフラグを立てることがあります。

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

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

これは、Cで書かれたWindowsアプリケーションです。

ありがとう。

0
dll注入もリモートスレッド作成もありません。これらの2つのAPIは、プログラムのさまざまな部分で異なることをしています。 APIフックを確認する方法を知っていますか?
追加された 著者 Mr Aleph,
@alk Any。一つを選ぶ。
追加された 著者 Mr Aleph,
GetProcAddressCreateProcess だけでAVのフラグを立てるべきではありません。 CreateRemoteThread を使用してリモートDLL注入を行っていますか?その場合、関数のシグネチャはマルウェアのものと一致する可能性があります。
追加された 著者 JosephH,
"...特定のAPIが存在するかどうかをチェック..."、どのAPIについて話していますか?
追加された 著者 alk,
そして、あなたのAPIモニタ検出器がフックされていないことをどのように確認しますか?
追加された 著者 Raymond Chen,
APIをフックした人があなたのAPI検出器を引っ掛けているかもしれないので、APIがフックされているかどうかを確かめる方法はありません。
追加された 著者 Raymond Chen,

1 答え

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 テストしたサンプルソースがあります。

1
追加された
それが私が必要とする情報です。ありがとう!
追加された 著者 Mr Aleph,
ApiHookCheckアルゴリズムへのリンクはもう動作しません。誰かがそれへの良いリンクを提供してもらえますか?
追加された 著者 Benny,
@おかげさまで、その質問も見つけました。あなたが参照したAPIHookCheckingアルゴリズムに似ていれば、あなたの答えは?
追加された 著者 Benny,
@Benny:これは始めるべきポイントかもしれません: security.stackexchange.com/q/17904/36769
追加された 著者 alk,