-
-
[原创]记一个PESpin0.3x壳的详细脱壳笔记和脱壳脚本
-
-
[原创]记一个PESpin0.3x壳的详细脱壳笔记和脱壳脚本
####第一次发帖有什么不对的地方请指正,看到后会一一修复^.^
###工具
win7 32位, OD, IDA, PEID, 通用导入表修复工具, impREC
###可以先用PEID扫一下是什么壳

###找OEP
把strongOD和调试设置的异常处理关闭


重启OD开始F9运行
会在异常处断下来,分析后发现共有7个异常
在两个一组,异常处下硬件执行断点测试有没有反硬件断点的

分两个一组测试,测试了两次之后发现第三个异常的回调会清除硬件断点


先暂停分析异常,然后条件反射的就应该去它的SEH链查看回调函数,是不是有清除硬件断点的操作


猜测是清除硬件断点的,但是这个汇编看不出来,就dump出来放IDA里面看一下,直接F5

这个可能是Dr0_Dr6七个寄存器,但是还是不太清除,可以再建一个结构体放进去看一下

在结构体模块里面添加context结构体


右键选中a2转换结构体看到了Dr0-Dr4和Dr6,Dr7个寄存器


这样就比较清除了

接下来分析剩余的几个异常,没什么大的问题不影响脱壳
运行起来了之后,vc6的特征搜索 sub esp,0x58,在模块里边搜索看哪个里面有正确的OEP


vc6第一个call里边会有GetVersion

所以OEP就在这个0x58附近

另一种找OEP的方法:ESP定律
依然是关闭strongOD和OD的异常处理
等修复完成之后发现这个导入表不是一个典型的导入表这时候我们需要用 (通用导入表修复工具) 修复一下这个导入表

修复

修复前的导入表

修复后的导入表

修复完成后,将OEP, dump出来
然后用impREC再修复一下导入表即可

完成

##致谢!
##谢谢15PB老师们的耐心指导和辛勤栽培!再次感谢!!
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
最后于 2018-4-3 19:04
被从黎明到衰落编辑
,原因: 添加附件