《加密与解密》ASProtect 2.1x SKE 脱壳过程中遇到的问题与解决方法及脱壳小结

  在学习《加密与解密》脱壳部分时,做了一次关于ASProtect的脱壳实验,但按照书上的步骤会报保护错误(Protect error)。为了明白原因,我 继续往下深入。除了分析结果,以下还记录了关于脱壳学习的小结,方便以后自己和坛友查看。

  •       寻找OEP
  •       Dump
  •       解除 “Emulate standard system functions”功能
  •       通过脚本解除 “Emulate standard system functions”功能

  1.寻找OEP
    关于ASProtect壳,找到原始入口点OEP(original entry point)有几种方法,坛论上也有很多相关的帖子,比如安于此生 翻译的 “使用OllyDbg从零开始Cracking 第五十一章-ASProtect v2.3.04.26脱壳-Part1  ” ,其中介绍了两种方法,一是Ollybone 插件;二是最后一次异常法。Ollybone这款插件很方便,在 401000 代码段使用break-on-execute断点,即可到达OEP。不过 ASProtect的外壳的起始地址也是401000,所以需要按F7,单步跟踪来到外壳的另一个段,再使用执行断点。注意Ollybone很久没 更新了,因此不支持现在的Windows高版本,比如Win8。在《加密与解密》一书中,也介绍了两种方法,一是使用VolX脚本,二是 分析外壳代码。在第二方法中,作者分析了外壳代码,来到了处理“Emulate standard system functions”处(之后会说到), 当外壳执行完“模拟系统函数  ”  的功能后,只需对401000代码段设内存断点,再点击F9,即可来到OEP。

    注:书中所述的方法需要在“Options->Debugging options->exceptions”中勾选“Memory access violation”,即忽略 内存访问异常断点。

  2.Dump
    在ASProtect这个例子中,加壳选项只设置了“Emulate standard system functions”(以下简称模拟系统函数)。如果直接到达OEP,那么Dump下来的程序是无法运行的。因为Dump的数据只包括IMAGE_SECTION_HEADER所指定的,即只有代码段、数据段等,没有外壳代码部分。(这部分外壳代码的地址是通过VirtualAlloc分配的,因此不会被Dump下来,所以当Dump下来的程序执行时,会因找不到外壳代码而出错。)接下来到正题了。

  3.解除 “Emulate standard system functions”功能
    为能够让大家也尝试一次,在讲述正题前,先说一下快速来到“模拟系统函数”代码的方法。首先用OD打开附件中的“TraceMe_Emulate standard system functions.exe”,点击一次F9,来到401000代码段。
    
    
    
  • 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、付费专栏及课程。

余额充值