笔记之不抓瞎的内存法
本帖最后由 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 开始的复活节 发表于 2017-4-17 15:51
有些地方不理解,怎么知道什么时候解密好了
http://www.52pojie.cn/thread-598363-1-1.html(笔记之寻找特征来寻找OEP)
这个帖子讲了很详细。 感谢饿了 感谢楼主分享,很不错哦 值得学习 感谢分享 学习了,好好学习 好厉害。看着都头晕 感谢分享 一脸懵逼看完( . ) 厉害,感谢分享