質問:
Ollydbg 2:中断されたプロセスに接続した後の中断
j0ker
2014-06-13 22:10:27 UTC
view on stackexchange narkive permalink

マルウェアを分析するときに、実際のマルウェアコードを新しく生成されたプロセスに挿入し、そのように実行するパッカーに出くわします。そのために、彼らは中断状態でプロセスを作成し、コードを挿入し、Windowsで ntdll.NtResumeThread を使用して再開します。

挿入後に中断されたプロセスにアタッチしたいと思いますメモリをダンプし、解凍されたバイナリを取得するために行われます。そのために、 ntdll.NtResumeThread で中断します。 Olly 2を使用して、中断されたプロセスにアタッチできます。

私の問題は、これがプロセスを再開しているように見えることです。エントリポイントで壊れても大丈夫です。しかし、そうではありません。オリーは、私がアタッチしたプロセスが終了するまで壊れません。はい、メモリをダンプできます。ただし、マルウェアによって変更されていない場合に限ります。また、解凍中にマルウェアコードを実行したくないのです。

では、新しいプロセスのエントリポイントでOllyを(確実に)中断させる方法はありますか?

よろしくお願いします!

カーネルデバッガーを使用します。 OllyDbgがそれを使用するのか、独自の自作メソッドを使用するのかはわかりませんが、発生しているのは公式のデバッグAPIの制限でもあると思います。
WinDbgをテストするために移動したらすぐにこれを試します:)
@j0kerこれは、Ollydbgのくり抜かれた/子プロセスのエントリポイントを壊すためにしばらく前に書いたリンクです。それは役立つはずです。 http://hooked-on-mnemonics.blogspot.com/2013/01/debugging-hollow-processes.html
1 回答:
Jason Geffner
2014-06-13 22:23:01 UTC
view on stackexchange narkive permalink

FYI、あなたが言及している注入方法は、動的フォークまたはプロセスのくぼみと呼ばれます。

子プロセスにアタッチする場合OllyDbgを使用すると、OllyDbgはそれ自体に新しいスレッドを作成しますが、メインスレッド(親から NtResumeThread()で再開されたスレッド)は引き続き中断されます。 OllyDbgをアタッチしたら、OEPにブレークポイントを設定して、中断されたスレッドを再開できます。これにより、OllyDbgがOEPで中断します。

あなたが正しいです。他のスレッドを探すことすら思いつかなかった。ありがとうございました!


このQ&Aは英語から自動的に翻訳されました。オリジナルのコンテンツはstackexchangeで入手できます。これは、配布されているcc by-sa 3.0ライセンスに感謝します。
Loading...