質問

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

これを行うにはどのようなプログラムを使用できますか?この問題に対してはどのような技術が存在するのでしょうか?

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

誰か助けてくれませんか?

役に立ちましたか?

解決

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

それが何であるかによって、あなたはフックする必要があり、保護が侵入されているかどうかに応じて、いくつかの方法があります。

  1. 仮想化バイナリでの相対コール/JMPパッチ:これは最も単純ですが、関数へのすべての参照を自動的に見つけることができない場合、これはおそらくあなたの基準のためにこの原因では機能しないでしょう。

  2. IAT/EATフック:これは、輸入(IAT)とエクスポート(EAT)に使用されます。これの良い例が見つかります ここ また ここ

  3. ホットパッチ:Windows XP SP2は、「Hot-Patching」(リアルタイムシステム機能の更新に使用)と呼ばれるものを導入しました。ここでは、すべての(Winapi)関数が「Mov EDI、EDI」で始まり、相対的なジャンプをパッチに供給できます。すべてのホットパッチ可能な関数の上に作成された自由空間(人もそれをすることができます)。これは通常、IATのチェックサムや他の面白い形式の保護形態を持っているプログラムに使用されます。より多くの情報が見つかります ここここ

  4. コードケービング:任意のコードスペースにリダイレクトを配置することにより、実行フローをキャプチャします。見る ここ, ここ また ここ

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

サードパーティの図書館はたくさんありますが、最も有名な図書館はおそらく Ms Detours, 、人も見ることができます Apihijack またはa ミニフックエンジン.

もちろん、あなたがのようなデバッガーで行う必要がある最初の突っ込みに代わるものは何もありません ollydbg, 、しかし、あなたが使用する方法を知ることは、それらを大幅に短くすることができます。

他のヒント

正確に何をする必要があるかについての詳細 (例:どこでブレイクするかをどのように決定しますか)がいいでしょう。状況に応じて、次のようなもの ピン うまくいくかもしれない。

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

メソッド呼び出しの傍受に興味がある場合は、APIフックを行うことができます。

または、softiceのようないくつかの分解者を使用してください ollydbg また win32dasm.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top