介绍三种方法:
1.单步跟踪法
2.ESP定律法
3.2次内存镜像法
1.单步跟踪法
宗旨:向上的跳转不让实现,向下的跳转实现,当发现大跨度跳转时,即会到OEP
2.ESP定律法
遵循堆栈平衡原理,在壳对程序进行操作加密或者压缩时,会把程序的OEP压入栈中,当壳执行完成后,进行解密或者解压缩,会把真正的OEP从栈中弹出
操作方法:
载入OllyDbg,单步程序,发现ESP寄存器变红
右键点击ESP,数据窗口跟随
对数据窗口该处下硬件访问断点
运行程序,单步跟踪到OEP
3.2次内存镜像法
在壳进行解密或解压缩时,最后释放的是资源区段:.rsrc,这个区段被释放完全后,说明整个程序已经被全部解密
操作方法:
载入OllyDbg,ALT+M打开内存窗口
找到第一个资源区段,下断点,Shift+F9或运行
再到内存窗口找到地址为401000的代码区段下断,运行
单步结合单步跟踪法找到OEP