笔记之寻找特征来寻找OEP
本帖最后由 lufei 于 2017-4-11 20:19 编辑前言:
http://www.52pojie.cn/thread-590328-1-1.html以前这里利用了语言特征来寻找oep。
ESP定律利用eip接近oep时候的特征。最后一次异常法,也同样是利用eip接近oep时候的特征。除了这些特征其实还有一些特征可以挖掘。比如壳的流程是要解密原来 的代码,恢复IAT表。当做完这些操作后,是不是就离OEP很近了啊?
开始:
我们先F9运行程序,然后对比脱壳前与脱壳后的数据进行对比。
拿 http://www.52pojie.cn/thread-11747-1-1.html 进行实验。
观察执行壳的loader未开始与完成之后的各个区段的情况:
.data段,地址401000。壳loader未开始的状态,如下图。
1.1
壳Loader完成之后的情况,如下图。
1.2
壳loader完成之后,.data段发生了很大的变化。
.ex_cod段,地址407000。壳loader未开始的状态,如下图。
1.3
壳Loader完成之后的情况,如下图。
1.4
壳loader完成之后,.ex_cod段没发生变化。
.ex_rsc段也是没发生变化的,就不贴图了。
由此可知,程序在完成对data段解密后,应该很快就跳到了OEP。
在data段下F2访问断点,然后F9跑起来。
然后F7,再F8单步跟(跳过循环解密),跟到如下图,就是跳转到OEP的关键jmp。
1.5
ESP定律利用eip接近oep时候的特征。最后一次异常法,也同样是利用eip接近oep时候的特征。除了这些特征其实还有一些特征可以挖掘。比如壳的流程是要解密原来 的代码,恢复IAT表。 本帖最后由 lufei 于 2017-4-15 23:48 编辑
Hmily 发表于 2017-4-12 10:25
压缩壳一般是这么处理,复杂的加密壳可能就要处理多次,加之很多反调试,就不太好找了。
这个是面对多次处理的加密壳 也是用到这个帖子说的 http://www.52pojie.cn/thread-599758-1-1.html(笔记之不抓瞎的内存法)。
面对太变态的壳,就困难了。不过小生我怕怕发的那个系列还好,用这些方法还能找到OEP。
吾爱专题脱壳练习,没有代码虚拟保护的,很遗憾,我也不去搞了,笔记系列也就在这里停了。不过还是很感谢吾爱论坛,从这个系列学到很多脱壳的知识。 你这算是对比区段法快速到达OEP附近? 榻榻米 发表于 2017-4-11 18:27
你这算是对比区段法快速到达OEP附近?
嗯 我这里算是对比区段,但是不局限区段啊,比如IAT表之类的,也是可以的。 谢谢分享,前来学习取经,我是小白一枚。 确实也是一种方法 来学习一下 压缩壳一般是这么处理,复杂的加密壳可能就要处理多次,加之很多反调试,就不太好找了。 很细心,有思想
页:
[1]
2