12下一页
返回列表 发新帖

脱壳方法总结

[复制链接]

91

主题

1292

帖子

6254

积分

硕士生

Rank: 6Rank: 6

金币
690
好评
105
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-7-1 09:11:14 来自手机  | 显示全部楼层 | 阅读模式
一、单步跟踪法
  脱壳的方法有很多,先来讲脱壳方法中最基础的单步跟踪法。单步跟踪法就是利用OD的单条指令执行功能,从壳的入口一直执行到OEP,最终通过这个OEP将原程序dump出来。然当,在单步跟踪的时候需要跳过一些不能执行到的指令。
  使用单步跟踪法追踪OEP的常见步骤:
  1、用OD载入待脱壳文件,如果出现压缩提示,选择“不分析代码”;
  2、向下单步跟踪,实现向下的跳转;
  3、遇到程序往上跳转的时候(包括循环),在回跳的下一句代码上单击并按键盘上的“F4”键跳过回跳指令;
  4、OD中的绿色线条表示跳转没有实理,不必理会,红色线条表示跳转已经实现;
  5、如果刚载入程序的时候,在附近有一个CALL指令,那么就要按键盘上的“F7”键跟进这个CALL内,不然程序很容易运行起来;
  6、在跟踪的时候,如果执行某个CALL指令后就运行,一定要按键盘上的“F7”键进入这个CALL之内再单步跟踪;
  7、遇到在popad指令下的远转移指令时,要格处注意,因为这个远转移指令的目的地很可能就是OEP。
=============================================================== 
  二、ESP定律法
  ESP定律法是脱壳的利器,是国外友人发现的。有了ESP定律,可以方便我们脱掉大多数的压缩壳。可谓是本世纪破解界中最伟大的发现之一。这里只简单的看一下狭义ESP定律的原理。
  使用ESP定律追踪OEP的常见步骤:
  1、将待脱壳程序载入到OD中,开始就按键盘上的“F8”键单步跟踪一步,这时如果看到OD右边的寄存器窗口中的ESP寄存器的值有没有变为红色,如果发现ESP寄存器的值变为红色,执行第2步;
  2、在OD的命令行窗口中执行命令hrXXXXXXXX,xxxxxxxx就是变为红色的ESP寄存器的值,在输入命令之后,一定不要忘记按键盘上的回车键;
  3、按键盘上的“F9”键让程序运行起来;
  4、使用单步跟踪的方法跟踪到OEP即可。
=============================================================== 
  三、二次断点法
  二次断点是有技巧的下两个断点,在两个断点之后就可以很轻松的找到OEP。
  使用二次断点法追踪OEP的常见步骤:
  1、将待脱壳程序载入到OD中,单击OD的“选项”菜单下的“调试设置”命令,在弹出的“调试选项”对话框中切换到“异常”选项卡,勾选该选项卡下的所有复选框,也就是忽略所有异常;
  2、按键盘上的“ALT+M”组合键打开OD的内存窗口;
  3、在OD的内存窗口中找到“.rsrc”区段,单击该区段后按键盘上的“F2”键在该区段上下一断点;
  4、按“Shift+F9”让程序运行到断点心处,而后再次打开OD的内存窗口,这次在“.rsrc”区段上面的“.code”区段(有的时候就是“.text”)上下一个断点;
  5、按“shift+F9”让程序运行到第二次下的断点处,然后单步跟踪既可以来到OEP。
=============================================================== 
  四、末次异常法
  在脱壳方法中,末次异常法又被称为最后一次异常法,这是最基础的脱壳技术之一。末次异常法脱壳很是简单,但就是这简单的脱壳方法可以挑掉曾经风靡一时的强壳。
  使用末次异常法追踪OEP的常见步骤:
  1、将待脱壳程序载入到OD中,单击OD的“选项”菜单,在弹出的菜单中单击“调试设置”命令,在随后弹出的“调试选项”对话框中切换到“异常”选项卡,清除该选项卡下所有复选框,也就是不忽略任何异常;
  2、连续按键盘上的“Shift+F9”组合键让程序运行起来,记录按键的次数X;
  3、回到OD中,按键盘上的“Ctrl+F2”组合键重新载入程序,按X-1次“Shift+F9”组合键;
  4、在OD右下角窗口中找到“SE句柄”或是“SE处理程序”,记录此处的内存地址;
  5、在OD的反汇编窗口中跟随到上一步记录下的内存地址,并在此内存地址处下一个断点;
  6、按键盘上的“Shift+F9”组合键让程序运行到上一步下的断点处,按键盘上的“F2”键取消此处的断点;
  7、使用单步跟踪法追踪到OEP。
=============================================================== 
  五、模拟跟踪法
  在这章中讲到的众多脱壳方法中,我们首先讲了单步跟踪法脱壳,因为单步跟踪脱壳法是脱壳技术中最基础的方法,在后面其它的一些脱壳方法中总会或多或少的配合单步跟踪法才能顺利完成脱壳工作。便是始终是一次次的按“F8”键来单步跟踪程序,偶尔遇到回跳就跳过执行,这样机械性的操作很是烦人,那么能不能让机器来代替人力,让工具帮我们单步跟踪呢?答案是肯定的,这也就是这节讲的内容——模拟跟踪法。模拟脱壳法就是模拟单步跟踪来进行查找OEP。
  模拟跟踪法的常见步骤:
  1、将待脱壳程序载入OD中,先简单的跟踪一下程序,看看有没有SEH暗桩;
  2、按键盘上的“ALT+F9”打开OD的内存窗口,找到“SFX,输入表,资源”的行,并记录此行的内存地址;
  3、在OD的命令行窗口执行命令“tc eip<上一步中记录下的地址”,命令执行后就会跟踪到OEP。
=============================================================== 
  六、SFX自动脱壳法
  在上一节,我们使用模拟跟踪法代替手动单步跟踪法进行脱壳。在OD中,不但可以利用模拟跟踪来代替单步跟踪进行脱壳,从而节省劳动力,还有一种SFX自动脱壳的方法也可以节省劳动力,并能快速有效的将程序的壳脱掉。
  使用SFX自动脱壳法脱壳的常见步骤:
  1、将OD设置为忽略所有异常;
  2、在OD的“调试选项”对话框的“SFX”选项卡中选择“字节模式跟踪实际入口”选项并确定;
  3、将待脱壳程序载入OD,待程序载入完成后,会直接停在OEP处。
=============================================================== 
  七、出口标志法
  前面几个脱壳方法中有一个共同点,就是在单步跟踪到popad指令后面不远处的jmp指令的时候,就可以大胆的判断这个jmp指令的目的地址就是OEP。原因很简单,popad指令用于将壳运行之前保存的环境恢复,使原程序能正常运行。有些壳的popad指令很少,我们就可以查看被这种壳加壳的程序的所有popad指令,找到后面存在jmp指令的popad指令,然后来到其后的jmp指令的目的地址,这很可能就是OEP,然后就可以进行dump脱壳了。
  使用出口标志法脱壳的常见步骤:
  1、将待脱壳程序载入OD中,在OD的反汇编客人口中单击鼠标右键,在弹出的右键菜单中单击“查找”→“所有命令”,在弹出的输入框中输入“popad”并按“查找”按钮;
  2、逐一尝试跟踪查找到的所有“popad”指令,最终达到程序的OEP

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
已有1人评分好评 金币 理由
尼斯湖水怪 + 1 + 1

查看全部评分 总评分:好评 +1  金币 +1 

回复

使用道具 举报

91

主题

1292

帖子

6254

积分

硕士生

Rank: 6Rank: 6

金币
690
好评
105
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-7-1 09:11:36 来自手机  | 显示全部楼层
沙发归楼主
回复

使用道具 举报

9

主题

404

帖子

3939

积分

大学生

Rank: 5Rank: 5

金币
307
好评
5
贡献
0

考神

发表于 2019-7-1 09:15:46 来自手机  | 显示全部楼层
说得很好,反正我不会
回复

使用道具 举报

91

主题

1292

帖子

6254

积分

硕士生

Rank: 6Rank: 6

金币
690
好评
105
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-7-1 09:16:15 来自手机  | 显示全部楼层
Jokerchann 发表于 2019-7-1 09:15
说得很好,反正我不会

其实我也不会
回复

使用道具 举报

175

主题

1772

帖子

4737

积分

大学生

Rank: 5Rank: 5

金币
743
好评
25
贡献
0
发表于 2019-7-1 09:29:08 来自手机  | 显示全部楼层
看得一脸懵逼,。。。
回复

使用道具 举报

243

主题

1万

帖子

2万

积分

版主

一个水怪

Rank: 7Rank: 7Rank: 7

金币
9149
好评
127
贡献
2

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员

发表于 2019-7-1 09:30:12 来自手机  | 显示全部楼层
经过我充分缜密的观察发现,你最后那个内容可能是



一只蚊子
回复

使用道具 举报

91

主题

1292

帖子

6254

积分

硕士生

Rank: 6Rank: 6

金币
690
好评
105
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-7-1 09:42:45 来自手机  | 显示全部楼层
尼斯湖水怪 发表于 2019-7-1 09:30
经过我充分缜密的观察发现,你最后那个内容可能是



是的,昨天咬我了  抓住  剪了一半翅膀  让他自生自灭
回复

使用道具 举报

18

主题

952

帖子

2494

积分

大学生

两个笑靥

Rank: 5Rank: 5

金币
284
好评
12
贡献
1

考神MT论坛帅哥MT论坛最佳新人MT论坛活跃会员

QQ
发表于 2019-7-1 09:43:56 来自手机  | 显示全部楼层
额,需要电脑吧,
回复

使用道具 举报

243

主题

1万

帖子

2万

积分

版主

一个水怪

Rank: 7Rank: 7Rank: 7

金币
9149
好评
127
贡献
2

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员

发表于 2019-7-1 09:44:48 来自手机  | 显示全部楼层
夏糜 发表于 2019-7-1 09:42
是的,昨天咬我了  抓住  剪了一半翅膀  让他自生自灭

把他针管剪了让他舒服一下
回复

使用道具 举报

91

主题

1292

帖子

6254

积分

硕士生

Rank: 6Rank: 6

金币
690
好评
105
贡献
3

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人

发表于 2019-7-1 09:46:11 来自手机  | 显示全部楼层
尼斯湖水怪 发表于 2019-7-1 09:44
把他针管剪了让他舒服一下

残忍的水怪,我跑了,打扰了
回复

使用道具 举报

243

主题

1万

帖子

2万

积分

版主

一个水怪

Rank: 7Rank: 7Rank: 7

金币
9149
好评
127
贡献
2

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员

发表于 2019-7-1 09:47:44 来自手机  | 显示全部楼层
夏糜 发表于 2019-7-1 09:46
残忍的水怪,我跑了,打扰了

有些蚊子是传播疾病的
回复

使用道具 举报

243

主题

1万

帖子

2万

积分

版主

一个水怪

Rank: 7Rank: 7Rank: 7

金币
9149
好评
127
贡献
2

MT论坛灌水老大MT论坛最佳新人2019-5.1节快乐考神MT论坛侠客MT论坛活跃会员

发表于 2019-7-1 09:48:14 来自手机  | 显示全部楼层
尼斯湖水怪 发表于 2019-7-1 09:47
有些蚊子是传播疾病的

比如按蚊传播疟疾
回复

使用道具 举报

20

主题

4539

帖子

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
3682
好评
33
贡献
0

考神

发表于 2019-7-1 09:54:15 来自手机  | 显示全部楼层
学习一下
回复

使用道具 举报

25

主题

1529

帖子

4335

积分

大学生

学渣

Rank: 5Rank: 5

金币
982
好评
7
贡献
0

MT论坛最佳新人考神MT论坛活跃会员

发表于 2019-7-1 10:00:41 来自手机  | 显示全部楼层
吾爱破解的.以前学过.不过现在全忘记了
回复

使用道具 举报

4

主题

480

帖子

2667

积分

大学生

Rank: 5Rank: 5

金币
250
好评
22
贡献
0
发表于 2019-7-1 10:12:47 来自手机  | 显示全部楼层
马可
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表