zhang054 发表于 2011-7-17 13:49

【新手上路】单步跟踪法找OEP,手脱UPX壳(附送ESP定律、一步到位法)

本帖最后由 zhang054 于 2011-7-17 15:19 编辑

晕死~~昨晚就想发这帖子了,结果打到一半时候猫被爸爸妈妈拔了{:1_906:}悲剧...

下面正文:

首先说明下.我本人也是个新手.发帖是跟大家互相交流,提升自己,大家发现有什么不对的地方请指出,我改正。 此次脱壳我只用到两个软件:peid 和 OD ,其实,我认为,新手更应该熟练使用这两个软件,尤其是OD,里面的诸多插件是非常强大的,堪比神器! 记住单步跟踪的要点:逢CALL就F7,向下跳转就F8,向上就在下一行F4。 废话不多说,下面开始:
1.PEID查壳:


2.OD载入:


3.向下的跳转.F8

4.向上的跳转,在下一行F4

5.遇到CALL子程序,F7步入

6.特殊的向上跳转,在下一行F4之后程序就终止了:(这个非常关键,因为一不注意程序就挂了.这考验我们的分析能力)

7.经过仔细分析.我发现了这个特殊的跳转上面有一个跳转跳过了这个死CALL:

8.解决这个问题之后,很快到达了一个很长的跳转:

9.到达OEP:

10.脱壳后PEID查壳:

最后.运行脱壳后的文件,发现载入速度比脱壳前快了许多。
总结:大家看第6点,这个跳转下面有个CALL,我一点F4程序就终止了,仔细分析,是上面有个跳转跳过了这个CALL,实际运行中,是不会调用这个CALL的。所以
我们在脱壳破解中一定要仔细分析,多动脑,不要生搬硬套,知其然不知其所以然。

单步跟踪法的话这里还有一个帖子,讲得很详细:http://www.52pojie.cn/thread-23316-1-1.html


下面简单讲讲ESP定律找OEP:

1.OD载入:



2.点ESP,右键-在数据窗口跟随:



3.设置硬件访问断点:



4.F9运行,下面再走几步就到OEP了,我就不多说了。



其实,还可以用命令直接设置硬件访问断点,如图:



完毕。。。


下面讲一步到位法,这个方法是根据语言的特征(入栈与出栈相对应),来找到OEP:

1.OD载入就出现了PUSHAD,直接查找命令:



2.查找POPAD,记住不要勾选“整个块”,不然就不知道会飞去哪了- -||



3.跳到出栈位置,下面再走几步就到OEP了,我就不多说了。



完毕。。。

zhang054 发表于 2011-7-17 14:05

现在可以看到图了。。。

{:1_937:}第2次发帖,又悲剧了。。。上次也是看不到图。。。

Foox 发表于 2011-7-17 13:56

沙发???好像是看不到图,刷新试试

低调(d-iao) 发表于 2011-7-17 13:56

这里没有一张图是看到的..
不懂是我问题还是帖子问题

低调(d-iao) 发表于 2011-7-17 14:05

恩.可以了..

di7gan 发表于 2011-7-17 14:51

很详细,不错。

geography 发表于 2011-7-17 15:06

看的到图了!
呵呵
小小的支持一下!

chenhaoran 发表于 2011-7-17 16:10

嗯,看过了,有收获,但还是有些不明白,谢谢楼主。

zhang054 发表于 2011-7-17 16:24

有什么不懂的可以提出来....就算我解决不了也有大家帮忙...论坛里有很多高手的..

shiyuhao 发表于 2011-7-17 17:36

回复 zhang054 的帖子

想问一下LZ 你是在那一行F4之后发现程序终止的.还是有什么诀窍 分析出来的?
页: [1] 2 3
查看完整版本: 【新手上路】单步跟踪法找OEP,手脱UPX壳(附送ESP定律、一步到位法)