lufei 发表于 2017-4-11 18:18

笔记之寻找特征来寻找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


SomnusXZY 发表于 2017-4-12 08:47

ESP定律利用eip接近oep时候的特征。最后一次异常法,也同样是利用eip接近oep时候的特征。除了这些特征其实还有一些特征可以挖掘。比如壳的流程是要解密原来 的代码,恢复IAT表。

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

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

Hmily 发表于 2017-4-12 10:25
压缩壳一般是这么处理,复杂的加密壳可能就要处理多次,加之很多反调试,就不太好找了。
这个是面对多次处理的加密壳 也是用到这个帖子说的 http://www.52pojie.cn/thread-599758-1-1.html(笔记之不抓瞎的内存法)。

面对太变态的壳,就困难了。不过小生我怕怕发的那个系列还好,用这些方法还能找到OEP。

吾爱专题脱壳练习,没有代码虚拟保护的,很遗憾,我也不去搞了,笔记系列也就在这里停了。不过还是很感谢吾爱论坛,从这个系列学到很多脱壳的知识。

榻榻米 发表于 2017-4-11 18:27

你这算是对比区段法快速到达OEP附近?

lufei 发表于 2017-4-11 18:39

榻榻米 发表于 2017-4-11 18:27
你这算是对比区段法快速到达OEP附近?

嗯 我这里算是对比区段,但是不局限区段啊,比如IAT表之类的,也是可以的。

wanghai123 发表于 2017-4-11 19:26

yue2363311 发表于 2017-4-12 07:42

谢谢分享,前来学习取经,我是小白一枚。

小左公子 发表于 2017-4-12 09:24

确实也是一种方法

开始的复活节 发表于 2017-4-12 10:14

来学习一下

Hmily 发表于 2017-4-12 10:25

压缩壳一般是这么处理,复杂的加密壳可能就要处理多次,加之很多反调试,就不太好找了。

52lxw 发表于 2017-4-12 23:11

很细心,有思想
页: [1] 2
查看完整版本: 笔记之寻找特征来寻找OEP