首页
社区
课程
招聘
[原创]记一个PESpin0.3x壳的详细脱壳笔记和脱壳脚本
发表于: 2018-4-1 21:45 7233

[原创]记一个PESpin0.3x壳的详细脱壳笔记和脱壳脚本

2018-4-1 21:45
7233

####第一次发帖有什么不对的地方请指正,看到后会一一修复^.^

###工具
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老师们的耐心指导和辛勤栽培!再次感谢!!

 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2018-4-3 19:04 被从黎明到衰落编辑 ,原因: 添加附件
上传的附件:
收藏
免费 1
支持
分享
最新回复 (7)
雪    币: 2166
活跃值: (3226)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
欢迎入坑,期待你继续努力
2018-4-1 22:36
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
虽然看不懂,还是赞一下。
感谢大侠分享。
2018-4-1 23:44
0
雪    币: 5611
活跃值: (1444)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
4
谢谢鼓励!
2018-4-2 10:11
0
雪    币: 5611
活跃值: (1444)
能力值: ( LV4,RANK:45 )
在线值:
发帖
回帖
粉丝
5
我也是刚入坑
2018-4-2 10:12
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
入坑的大侠,继续努力,再来更多的作品。
感谢分享。
2018-4-2 10:46
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
大佬,我用的是esp定律,怎么才能找到那个清除断点的地方啊
2018-6-28 02:21
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
还有我用的网上的常规esp定律方法,但是到了0018ff64会陷入到一个循环里面。。。
2018-6-28 02:23
0
游客
登录 | 注册 方可回帖
返回
//