1

多くの場所で非常に大きなアプリケーションの実行をインターセプトする必要があります。

これを行うために使用できるプログラムは何ですか? この問題に対してどのようなテクニックが存在しますか?

手動でリバース エンジニアリングを行ってフックを追加することは、この問題の最適な解決策ではない可能性があります。アプリケーションは非常に大きく、アプリケーションの一部はしばらくすると更新される可能性があるためです。この問題に対するいくつかのツールまたは優れたプラクティスを使用すると、誰でもこれをより迅速に実行できると思います。方法を知っていますか?

誰か助けて?

4

4 に答える 4

4

ツールの部分がカバーされているのを見て、ここにテクニックのための何かがあります。

フックする必要があるものと、保護が含まれているかどうかに応じて、いくつかの方法があります。

  1. 仮想化バイナリでの相対呼び出し/jmpパッチ適用:これは最も単純ですが、関数へのすべての参照を自動的に見つけることができない場合は多くの作業も行います。これは、基準のためにこの原因ではおそらく機能しません。

  2. IAT / EATフック:これは、インポート(IAT)およびエクスポート(EAT)に使用されます。これは、既知のインポート/エクスポートされたAPI関数のセットをターゲットにする場合に最適です。この良い例はここまたはここにあります

  3. ホットパッチ:Windows XP SP2では、「ホットパッチ」(リアルタイムシステム関数の更新に使用)と呼ばれるものが導入されました。この関数では、すべての(WinAPI)関数が「movedi、edi」で始まり、相対ジャンプをパッチすることができます。すべてのホットパッチ可能な関数の上に作成された空き領域(これも実行できます)。これは通常、IATをチェックサムするプログラム、またはその他の面白い形式の保護を備えたプログラムに使用されます。詳細については、ここここを参照してください。

  4. コードキャビング:リダイレクトを任意のコードスペースに配置することにより、実行フローをキャプチャします。ここここ、またはここを参照してください

  5. VFT / COMリダイレクト:基本的に、オブジェクト仮想関数テーブルのエントリを上書きします。これは、OOP/COMベースのアプリケーションに役立ちます。これを参照してください

サードパーティのライブラリはたくさんありますが、最も有名なのはおそらくMS Detoursでしょう。また、 APIHijackまたはミニフックエンジンを見ることができます。

もちろん、 ollydbgのようなデバッガーで行う必要のある最初の突っ込みに代わるものはありませんが、使用する方法を知っていると、突っついている時間を大幅に短縮できます。

于 2010-09-21T11:16:43.727 に答える
1

正確に何をする必要があるかについての詳細(たとえば、どこを壊​​すかをどのように決定するか)はいいでしょう。状況によっては、Pinのようなものが機能する場合があります。

于 2010-09-18T00:36:26.153 に答える
1

Deviare API Hookを使用することをお勧めします。必要なことを実行できる最も簡単な方法です。別のプロセスからアプリケーションをフックするために使用できるいくつかの COM オブジェクトがあります。あなたのプロセスでは、完全なパラメーター情報を取得し、それを任意のプログラミング言語で使用できます (私は C# を使用していますが、魅力的に機能します)。レジストリ API をインターセプトする必要がある場合は、Deviare を使用してインターセプトする必要があるものをデバッグすることをお勧めしますが、独自のフックを作成する必要があります。そうしないと、パフォーマンスの問題が発生します。

于 2010-09-18T22:19:03.810 に答える
0

メソッド呼び出しのインターセプトに関心がある場合は、API フックを行うことができます。

または、 softice 、 ollydbg 、またはwin32dasm などアセンブラーを使用します。

于 2010-09-18T17:40:40.387 に答える