2

次のアプローチを使用して、Notepad.exe へのマルウェアの do インジェクションをデバッグしています。

CreateProcess(notepad.exe , create_suspend)  
GetThreadContext  
VirtualProtectEx  
WriteProcessMemory(address=1000000, Size:10200)  
WriteProcessMemory(address=7FFD8008, Size:4)  
SetThreadContext  
ResumeThread
  1. 再開する前に、Notepad.exe をデバッガーにアタッチする pid がありません。
  2. 再開後、スレッドが非常に高速に実行されるため、ollydgb に時間内にアタッチできません。
  3. メモリをダンプし、Notepad.exe に書き込む内容から PE として保存しますが、エラーで実行されます。

では、マルウェアが挿入されたコードをデバッグする方法は? ありがとう!!

4

2 に答える 2

4
  1. WriteProcessMemoryを呼び出す前に、挿入されたコードの最初のバイトを「int 3」(オペコードはcc)に変更する必要があります。
  2. ODは、メインスレッドを開始していないプロセスにアタッチできません。代わりにWinDbgを使用してください。
  3. WinDbgがサブプロセスにアタッチされた後、ResumeThreadを呼び出します。
  4. F5を押して、メインスレッドを実行します。
  5. メインスレッドは「int3」を検出すると停止します。ここで、バイトを元の値に変更する必要があります。例:eb addr_to_change55。PS:opcode 55は、「push ebp」を意味します。これは、1つの関数の開始時に実行される最も一般的な命令です。
  6. ここで、F10を押してシングルステップデバッグを開始します。
于 2012-09-27T02:55:41.790 に答える
1

CreateProcessが戻った後、プロセスはすでに存在しているはずであり、それに接続できるはずです。もう1つの方法は、ResumeThread呼び出しをスキップして、その時点でアタッチすることです。

于 2012-09-14T11:19:17.483 に答える