首页
社区
课程
招聘
[旧帖] [原创]ESP定律法脱PECompact 2.x -> Jeremy Collake 0.00雪花
发表于: 2014-1-17 15:18 2238

[旧帖] [原创]ESP定律法脱PECompact 2.x -> Jeremy Collake 0.00雪花

2014-1-17 15:18
2238
新人在看雪第一次发贴,请各位大侠们手下留情,多多关照。因为用这个插件的时候弹广告(不多,一天一次)再加上刚看了ESP定律相关方面的东西,所以决定试试ESP定律,看能不能把它破解了(感谢制作者先,这只是技术交流)。因为时间的关系先发出它的脱壳部分。后续再发破解部分。
整个过程分为两个部分:
1、  脱壳;
2、  总结;
(一)脱壳
先使用PEid看一下发现程序加了壳(废话,有壳了才需要脱壳)
PECompact 2.x -> Jeremy Collake
果断请出OD,刚按下第二个F8发现ESP寄存器变红了,地址为:0012FFC0。在这输入 

回车。接着F9,来到了这:

一看是在系统空间,不用慌。看一下堆栈和寄存器:

 
不是访问堆栈中0012FFC0时被断下的,再看一下代码:

 
此时EBX的值是:12FFBC。EBX+4=12FFC0,原来是访问这个断下来的。继续F9。
 

同上,继续F9:


这次是访问堆栈引起的中断,但是从代码来看不像是快到OEP了。因为堆栈接下来又长回去了。但为了安全,换用单步,在数次F8(此处可以继续F9,但从脱壳者的角度看,还是选择F8)后:
 
这个特征就是ESP定律中的恢复现场了。(如果在上一步按F9,将直接跳到这)果断F8:

这就是苦寻的OEP了。
最后就是Dump和修复了(如果Dump的文件可以运行就不用修复了)。过程如下:

在这里分别选择方式一和方式二生成两个文件(不知道有什么区别,所以都Dump了):

 
第4步中分别抓取刚刚Dump的两个文件:
 
生成两个新的文件:

结果只有第2个可以运行。第一个不行。我暂时不知道原因,有知道的大侠请告知。脱壳过程完毕。
(二)总结
对于文中的一路F9,可能会有事后诸葛亮的嫌疑。因为一般用ESP定律的时候都是按一次F9后一直单步,直到OEP。其实并非如此。ESP定律用的是堆栈平衡原理,如果堆栈都不平衡又怎么会是OEP呢。所有在当F9被断下后,我们可以看下是什么原因导致的。如果和堆栈不相关,我相信OEP还没到,所以可以选择再次F9。以上纯属个人的想法,为了验证此想法,又找了个加了ASP的notepad,结果一步就到了OEP。因为样本太少,可能这个方法只是适应此例,有不对的地方,请各位大侠们告知。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
写得不错,图文并茂,希望有大大来点评一下!
2014-1-17 22:26
0
雪    币: 6890
活跃值: (8944)
能力值: ( LV17,RANK:797 )
在线值:
发帖
回帖
粉丝
3
楼主写的不错图文并茂!学习了!
2014-1-18 13:29
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
写的不错 正在找相关资料 收藏了
2014-1-19 12:25
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主写的ESP脱壳定律很详细啊,非常感谢啊~另外可否问一下,这个截图工具是神马?很棒噢~
2014-1-20 23:41
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢支持,截图可以用QQ、Word自带的、还有Wdindows自带的工具都可以,哪 个方便用哪个
2014-1-21 07:57
0
雪    币: 292
活跃值: (710)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
支持蛋总啦!
2014-2-9 10:41
0
游客
登录 | 注册 方可回帖
返回
//