lufei 发表于 2017-4-15 23:30

笔记之不抓瞎的内存法

本帖最后由 lufei 于 2017-4-15 23:35 编辑

内存法最为主要的是要知道oep,在哪个区段,不然内存法就瞎了。找oep在哪个区段(不一定会在.text段),就搜索字符串,看在哪个区段引用。oep就在哪个区段,有时候你可能搜索不到字符串的引用(这个笔记的第二个列子就遇到这种情况)。下面第一个例子直接在.text段搜索到字符串的引用,所以判定oep在.text段。

http://www.52pojie.cn/thread-12135-1-1.html(脱壳样本)

在资源段F2,后F9。



1.1
然后在.text段下断点,然后F9。



1.2


1.3
来到00B931AC    8B11            mov edx,dword ptr ds: 。并不是我们期待的401000这个区段的内容。因为ecx是在401000这个区段的,所以断在这里。
再到.text设置访问断点。直接到达OEP。



1.4


再来一个复杂一点的。
http://www.52pojie.cn/thread-12822-1-1.html(吾爱专题脱壳练习十九----PUNiSHER 1.5)

首先这个是无法直接搜索到引用字符串的语句的,所以需要先F9,让字符串解压出来,找到字符串的位置。



1.5


1.6


那就在403000 下断点。



1.7
这个是异常,然后F9继续,达到断点。



1.8
这个时候,就需要多单步几下,直到跳过对403000的解密。或者在其他段下断点(比如401000),当断点中断在这里的时候,403000就完成了解密。这时候程序还是没有跑起来的,就对字符串的位置下硬件访问断点,然后让程序跑起来,按下 ”吾爱破解论坛“ 的按钮,ALT+F9返回到程序领空,断在40122D上。所以OEP就在401000这个段上。
(这里对api下断点,找OEP在哪个区段是可以的,只是一种手法)


接下来就在403000这个区段进行下断点,F9跳过异常后再F9达到断点。再到401000这个区段进行下段,然后F9。(这期间关注403000这个区段是否完成解密)



1.9
这个时候发现403000已经完成了解密。而402000这个区段还没完成解密。(结合 笔记之寻找特征来寻找OEP,对比区段的情况)

然后就在402000下断点。中断后,再到401000这个区段下断点。然后三次F9后来到下图。



2.0
单步走几步就到了OEP了。




2.1

lufei 发表于 2017-4-17 17:09

开始的复活节 发表于 2017-4-17 15:51
有些地方不理解,怎么知道什么时候解密好了

http://www.52pojie.cn/thread-598363-1-1.html(笔记之寻找特征来寻找OEP)
这个帖子讲了很详细。

乖乖黑娃娃 发表于 2017-4-16 00:03

感谢饿了

ai313811036 发表于 2017-4-16 00:21

感谢楼主分享,很不错哦

emsAron 发表于 2017-4-16 00:23

值得学习

123-木头人 发表于 2017-4-16 08:14

感谢分享

gongyong728125 发表于 2017-4-16 08:19

学习了,好好学习

东圊居士 发表于 2017-4-16 08:39

好厉害。看着都头晕

大亮studio 发表于 2017-4-16 09:15

感谢分享

chen4321 发表于 2017-4-16 09:54

一脸懵逼看完( . )

剑客丶灬丶小二 发表于 2017-4-16 10:02

厉害,感谢分享
页: [1] 2 3
查看完整版本: 笔记之不抓瞎的内存法