使用IFEO映像劫持+windbg在进程运行过程中调试
修改注册表
在以下路径创建一个子key,以被调试的进程名作为名字
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
例如:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\SmartEngineHost64.exe
创建好后,在这个key下创建一个value,名字是debugger,值为windbg的路径
调试
常用命令: 搜索windows内核接口 x ker!CreateProcess 设置断点:bp 内核接口的全名 查看断点:bl 清除所有断点:bc * 清除某个断点:bc 1或bc 2等, 1和2是序号
继续执行:g 退出:q
到断点处发生中断时: 查看调用栈:kb 查看参入的参数:方法是直接查看内存,比如x64架构下的参数通常存放在几个寄存器内,rcx rdx,r8,r9等 如果是字符串参数,可以用dc查看,比如 dc rcx 如果字符串很长,可以给rcx加上偏移量:rcx+50,或者rcx后面带上地址 rcx 00000224`e2d110e0