逆向分析实验4 手动脱壳

本文最后更新于:2025年3月19日 下午

手动脱壳

查找尾部跳转指令

使用OllyDbg分析Lab18-01.exe程序,通过查找尾部跳转指令JMP找到程序的入口点OEP,完成手动脱壳

在下面发现尾部跳转指令

F4运行到此处后,F8步入跳转,找到入口点0040154f

脱壳

运行生成的exe文件

打开ImportREC 选择刚运行的进程,依次点击 自动搜索 获取输入表 修复转存文件即可

用PEID检查,脱壳成功

堆栈平衡原理

使用OllyDbg分析Lab18-03.exe程序,通过堆栈平衡原理使用pushad、popad和硬件断点,找到程序的入口点OEP,完成手动脱壳

发现pushfd和pushad

F8运行到pushfd和pushad下面的call指令处,右键右边的ESP寄存器,点击数据窗口跟随

选择四个字节,打上硬件访问断点

F9运行即来到断点位置

F8步过一直到retn处跳转后来到入口点,按ctrl+a分析代码

脱壳,注意OllyDump时不要勾选下面的“重建输入表”,否则会直接重建成功,使exe文件快速运行完毕导致ImportREC无法捕捉进程

ESP定律

使用OllyDbg分析Lab18-04.exe程序,通过ESP定律找到程序的入口点OEP,完成手动脱壳

先F8直到通用寄存器只有ESP为红色时

右键ESP,选择HW break [ESP]

然后F9运行

F8单步,发现retn返回到入口点,ctrl+a分析

脱壳


逆向分析实验4 手动脱壳
http://example.com/2025/03/19/逆向分析实验4 手动脱壳/
作者
sawtooth384
发布于
2025年3月19日
许可协议