Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何调试恶意软件注入代码?_Debugging_Reverse Engineering_Code Injection_Malware - Fatal编程技术网

Debugging 如何调试恶意软件注入代码?

Debugging 如何调试恶意软件注入代码?,debugging,reverse-engineering,code-injection,malware,Debugging,Reverse Engineering,Code Injection,Malware,我正在调试一个恶意软件,并使用以下方法将其注入Notepad.exe: CreateProcess(notepad.exe , create_suspend) GetThreadContext VirtualProtectEx WriteProcessMemory(address=1000000, Size:10200) WriteProcessMemory(address=7FFD8008, Size:4) SetThreadContext ResumeThread

我正在调试一个恶意软件,并使用以下方法将其注入Notepad.exe:

CreateProcess(notepad.exe , create_suspend)  
GetThreadContext  
VirtualProtectEx  
WriteProcessMemory(address=1000000, Size:10200)  
WriteProcessMemory(address=7FFD8008, Size:4)  
SetThreadContext  
ResumeThread
  • 在调试器恢复之前,没有将Notepad.exe附加到调试器的pid
  • 恢复后,线程运行得太快,我无法及时连接到ollydgb
  • 我转储内存并将其从写入Notepad.exe的内容保存为PE, 但它运行时出错了

  • 那么如何调试恶意软件注入的代码呢?谢谢

    在CreateProcess返回后,该进程应该已经存在,并且您应该能够附加到它。另一种方法是跳过ResumeThread调用并在该点附加

  • 在调用WriteProcessMemory之前,应该将注入代码的第一个字节修改为“int 3”(操作码为cc)
  • OD无法附加到尚未启动主线程的进程,请改用WinDbg
  • 在WinDbg连接到子进程后调用ResumeThread
  • 按F5让主线程运行
  • 当主线程看到“int 3”时,它将停止,现在您应该将字节更改为原始值。例如:eb addr_to_change 55。PS:opcode 55表示“push ebp”,这是在一个函数开头执行的最常见指令
  • 现在,按F10开始单步调试