2012-09-14 33 views
2

我調試惡意軟件做注射方式Notepad.exe使用以下方法:如何調試惡意軟件注入代碼?

CreateProcess(notepad.exe , create_suspend) 
GetThreadContext 
VirtualProtectEx 
WriteProcessMemory(address=1000000, Size:10200) 
WriteProcessMemory(address=7FFD8008, Size:4) 
SetThreadContext 
ResumeThread 
  1. 沒有PID附加的Notepad.exe它恢復之前調試器。
  2. 恢復後,線程運行得如此之快以至於我無法及時附加到ollydgb。
  3. I轉儲內存並將其保存爲PE寫入Notepad.exe的內存, 但它運行時出錯。

那麼如何調試惡意軟件注入代碼?謝謝!!

回答

0

CreateProcess返回後,該過程應該已經存在,您應該可以附加到它。另一種方法是跳過ResumeThread調用並附加在那一點上。

2
  1. 在調用WriteProcessMemory之前,應該將注入代碼的第一個字節修改爲'int 3'(操作碼是cc)。
  2. OD無法附加到未啓動主線程的進程,請改用WinDbg。
  3. 將WinDbg附加到子流程後調用ResumeThread。
  4. 按F5讓主線程運行。
  5. 主線程在看到'int 3'時會停止,現在您應該將該字節更改爲原始值。例如:eb addr_to_change 55. PS:操作碼55表示'push ebp',這是在一個函數開始時執行的最常見的指令。
  6. 現在,按F10開始單步調試。
+0

謝謝,我會試試看 – user1177284