2012-09-14 98 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