ASProtect壳的分析

此壳基本上可以统一用最后一次异常法来解决。
我们载入程序,然后设置不忽略内存访问异常,隐藏OD,然后按照最后一次异常法的步骤来运行。到最后一次异常的时候,我们可以选择运行到retn,然后在内存中的代码段下断,然后shift+f9我们就可以来到它的OEP。无论是低版本,还是高版本的ASP壳,基本上都是用上述的最后一次异常法来解决。这里我们发现一个很经典的方法,就是,刚开始并不需要取消忽略任何异常,让它直接跑起来,跑起来以后点击Log窗口,然后查看他有多少次访问违例,我们就只需要shift+F9多少次,然后再打开内存在代码段下断即可,然后一套shift+F9,就可以完美到达OEP。(这样的话不需要我们连续按两遍,其次就是,我们发现有些程序最后一次异常定位没有用,这样的程序我们打开log查看的时候,就会发现其实它所谓的最后一次并不像前面的访问违例一样,而是单独的显示两个字:异常,然后后面跟一串数字。这个时候,我们只需要关注访问违例是有多少个,我们就在哪下手。

接下来我们继续讨论ASP壳的分析,我们发现当我们脱完壳进行修复完毕之后,有时候会出现一个很令人头疼的事情,就是当我们发现了很多无效指针的时候,我们先用等级一修复,发现修复了很大一部分,然后再将剩下的用等级三修复,发现可以完全修复,OK,DUMP下来,点击运行,发现GG,程序无法运行。嗯,好吧,算它厉害,我们可以猜测下这个壳是不是像以前我们遇到的一样,需要我们将OEP设置为它的壳的OEP呢?不管了,先试试,OD载入程序,在它的初始OEP位置修改代码为jmp到我们的OEP,然后保存,通过lordpe进行修改OEP位置,修改完毕,发现,还是无法运行。这就很头疼了,我们知道,很多加密壳都会抽取代码,然后再在程序运行的时候填回去那么,我们现在应该考虑一下这个ASP壳是不是抽取了一部分代码呢跟过去看一看,先按照前面的步骤抓到它的最后一个异常点,然后在最近的一个retn处F2,再CTRL+F9,来到这个retn。这时候我们需要关注右下角的堆栈窗口,我们可以看到有一行后面写着程序的名字,没错,就是那一行。(这时候你们应该知道为什么我说屏幕越大越好了),那一行开始往下数,第二行,然后把第二行记下来,记下来以后,我们在command输入hr+记下来的东西,回车,然后,一个潇洒的shift+F9,这时候,我们就可以单步向下走,遇到call就进去,我们发现,随着我们慢慢的往前走,会出现一些很熟悉的东西,比如说C++的开头代码:push ebp  mov ebp,esp   对吧,我们得把这些代码都记下来(二进制复制),然后一步步往下走,将遇到的被抽取的代码都复制下来,直到我们retn出来,然后一直到它告诉我们的虚假OEP,然后往上拉,可以发现有一些地方,我们可以先将它nop填充,然后我们再将复制的代码二进制粘贴,粘贴完了以后我们在加上去的OEP处选择此处为新EIP,然后开始dump下来,再次进行修复。(如果我们call进去没有发现疑代码,那就说明它很有可能没有抽取代码)。好,修复完毕,优雅的点击程序,没运行。。。额,好吧,单击不行,双击才行。双击一下,哈哈哈哈,还是没运行,怎么样,惊不惊喜?意不意外?好啦,出现问题就要解决,我们来考虑下到底是什么问题呢?嗯,我们修复的时候,先等级一修复,然后等级三修复,完全修复完毕,修复完毕之后,我们发现无法运行。那么,我们试试,先等级一修复,然后不用等级三修复,用传说中importREC的外挂插件,针对这个壳ASP选择插件修复,试一试,发现也是完全修复完毕,完全修复完毕之后,我们dump下来,双击成果,发现,哇哇哇哇哇,可以运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASPROTECT 1.2 创建应用程序的测试版,采用时间限制或累减使用次数的方式对测试版本进行限制,生成注册码并对注册码进行管理,是程序员的得力助手! ASPROTECT 为保护程序员的劳动成果而开发,为开发出来的应用程序创建测试版,采用时间限制或累减使用次数的方式对测试版本进行限制;采用公用的注册码加密算法创建和确认注册码并对注册码采用数据库的方式进行管理,有效防止对应用程序的破解、盗版、反编译等;帮助程序员发布和销售自己的软件产品,简单易用而且非常安全可靠! ASPROTECT程序界面如下(点击可放大): (1)程序主界面 (2)压缩过程 ASPROTECT的关键特色: 对应用程序进行压缩; 对应用程序进行加密; 使用象ProcDump这样的工具防止对应用程序的盗版和破解销售; 应用程序的完整性检测; 防止对应用程序的调试和反编译; 防止通过内存调用对应用程序进行修补; 提供应用程序和保护程序之间的API接口; 采用公用的注册码加密算法创建和确认注册码; 对注册码采用数据库管理的方式,防止“偷盗”(非法)的注册码产生; 创建应用程序的测试版,采用时间限制或累减使用次数的方式对测试版本进行限制; 可针对不同的电脑操作系统创建不同的注册码。 ASPROTECT 的优势: 保护程序开发者的劳动成果; 帮助程序员发布和销售自己的软件产品; 创建注册码和对注册码进行管理; 创建应用程序的测试版; 简单易用而且非常安全可靠。 ASPROTECT 完全兼容Microsoft Visual C++、Visual Basic、Inprise (Borland) Delphi and C++ Builder及其它的Win32开发工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值