手动脱壳方法及原理

来源:互联网 发布:微三云 源码 编辑:程序博客网 时间:2024/05/15 02:33

介绍三种方法:

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

0 0