1.调试DebugMe3.exe,学习PE映像切换技术的具体工作原理
由于CreateProcess()和ResumeThread()API的行为动作非常明确,所以我们只需要跟进三个子函数进行跟踪分析
0x1:SunFunc_1():
0x2:CreateProcess("fake.exe",CREATE_SUSPENDED)
0x3:SunFunc_2():
对于XP系统下的EXE文件而言,PE文件头中的ImageBase值就是进程的实际映射地址。但是从Vista系统开始,使用了ASLR技术,是的PE中的ImageBase值与进程实际映射地址不再相同
2.调试fake.exe进程(实际是调试real.exe中的代码)
缓冲区起始地址为3A41E0,real.exe的EP偏移量(RVA)为1060,将两者相加可以得到real.exe的实际地址3A5240,借助调试器的代码编辑功能,将其EP设置为(EBFE)