设为首页收藏本站

武林论坛

武林论坛
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: vevb hack50 武林 错新网 【中介信息:中介费2%,已完成中介58笔,总金额321500元。】
查看: 800|回复: 0

[破解] 程序脱壳后的修复

[复制链接]

5054

主题

5243

帖子

10万

积分

VIP会员

Rank: 5Rank: 5

积分
107846
发表于 2016-7-8 00:23:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
程序脱壳后,可能并不能运行,这并不一定是因为没有找到正确的程序入口点,可能需要这样做:

1.使用ImportREC的大体操作步骤为:

(1)选择进程,可以使用OD正在调试产生的进程,也可以直接运行程序的进程。
(2)手工修改OEP为OD查到的OEP,然后点击“自动查找IAT”按钮
(3)点击“获取输入表”按钮,查看大窗口中有无效的指针
(4)如果全部有效,则可以直接点击“修复转储文件”按钮,在弹出对话框中选择要修复的文件即可。生成的带“_”的文件,即为修复后的文件。
(5)如果有无效的,则点击“查看无效的”按钮,在大对话框里阴影上右键,用相应的跟踪级别进行修复。常用的为级别一和级别三。在用级别三时,容易使程序停止相应,解决方法为:(1)直接打开运行程序,然后附加该程序,而不是OD调试中的进程;(2)用shift键一次选中几个指针,而不是全部选中后修复。
(6)此外,还可以手工修复指针:右键中,选择“反汇编/十六进制“查看菜单项,查看指针所属模块,和指针对应的API,之后,在指针上左键单击,在弹出的对话框中进行选择模块和API即可。
注:有些壳的指针不能修复,直接剪切掉即可,修复了反而不能运行,如穿山甲。
(7)如果修复指针过程中出现了程序被终止等异常情况,可以用“保存树文件“按钮,保存工作进度;待重新附加进程后再“载入树文件”继续操作。
(8)LordPE还有一些插件跟踪,可以搜集插件供使用。
(9)注意:有时RVA和大小两个地方也需要修改,如果修复后程序仍然不能运行,应往这方向考虑。其特点是查找到的指针个数非常少,程序中出现的一些指针未在指针列表中出现。此时应在数据窗口中右键,找到程序指针所在的区域,指针区的首部即是RVA,指针区的大小即为此处大小,之后“获取输入表”,剪出无效的指针,再“转储修复程序”。

2.附加数据

如果程序在脱壳修复后仍然不能运行,比如出现unvalid data或非法数据之类的提示的话,有可能是程序中存在附加数据。其修复方法为:
用winhex等软件十六进制打开程序,从末尾开始向上查找全零的位置,从此处开始到最后即为附加数据,我们需要把这些附加数据附加到破解后的程序后面即可。方法为选中后的复制粘贴。查找该附加位置也可以有更方便的方法,就是用LordPE的PE编辑器打开加壳程序--区段--这个时候大家可以看到程序的区段了--我们就选择最后的那个区段--现在开始计算附加数据的首部:附加数据的首部==最后一个区段的ffset+最后一个区段的RSize。

3.程序自校验


如果脱壳后程序打开后自关闭,则有可能程序有自校验功能。自校验的程序一般会检查程序的类型、大小、创建日期、CRC值等。解除的方法就是:开两个OD,分别装载原程序和脱壳后的程序,从找到的OEP开始,单步调试,寻找其不一样的跳转位置,进行修改。为了更快的找到不同的地方,可以在两个OD中都首先下断bp CreateFileA,中断后都Alt+F9返回!CreateFileA是检测文件的API,可能有多个中断位置,注意看堆栈中是否出现该函数,以找到正确位置。

4.程序暗桩


程序脱壳修复后无法运行,还可能是因为程序在入口点之后存在暗桩,比如INT 13。载入修复后的程序(当然它是无法运行的)F9运行发现了“莫名其妙”的异常了。(为什么是莫名其妙的异常?因为我已经忽略了所有的异常,好的,那我们就NOP掉他吧~~~保存!再打开看看~~OK了,可以运行~~

5.程序可运行,但点击某按钮等操作时提示错误,异常设置:忽略除了内存访问异常之外的所有异常。
载入程序---F9运行---点击错误位置---OD停在出错位置---修改代码保存。

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

本版积分规则

QQ|Archiver|手机版|小黑屋|武林网 ( 皖ICP备19019917号  

GMT+8, 2019-11-14 14:53 , Processed in 0.093750 second(s), 30 queries .

Powered by Vevb.com

© 2016-2019 Vevb Inc.

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