ASProtect脱壳技术详解
3星 · 超过75%的资源 需积分: 9 201 浏览量
更新于2024-10-07
收藏 38KB DOC 举报
"这篇文档详细介绍了如何手动对使用ASProtect壳的程序进行脱壳操作,主要涉及ASProtect的早期版本和具有StolenCode的情况。"
ASProtect是一款知名的软件保护工具,它通过加密和混淆代码来防止未经授权的使用或逆向工程分析。然而,为了调试或分析受保护的程序,有时需要对其进行脱壳处理。以下是ASProtect脱壳的一些关键步骤和技巧:
1. **无StolenCode情况**:
- 对于ASProtect 1.2/1.2c和1.23RC1等早期版本,通常可以忽略除内存访问异常外的所有异常,然后使用Shift+F9运行程序,直至最后一个异常发生。
- 在异常处理结束后,打开内存镜像并设置断点在00401000处,接着使用F9中断。这样通常能定位到原执行入口点(OEP)。
- 判断OEP的一个方法是观察堆栈中的硬盘指纹,当硬盘指纹不再出现时,前一个异常处理的位置可能就是OEP。
2. **有StolenCode情况**:
- 对于ASProtect 1.23RC4至1.3.08.24版本,同样忽略非内存访问异常,但在第二次出现硬盘指纹时,设置断点在00401000,中断后找到保存注册名的move指令。
- 在最后一次异常后,找到第一个retn指令处设置断点,中断后检查堆栈。ASCII码的第二行地址(例如0012FF68)是关键。
- 使用命令行工具hr0012FF68F9运行并中断,取消硬件断点,F7跟进,F8单步,找到解壳区域的内存地址。
- 使用Lord-PE进行完整和区域脱壳。区域脱壳地址应包含找到的内存地址,然后在PE编辑器中加载完整脱壳的程序,修改区段的VA和名称。
- 重建PE结构后,利用AsprDBGr.exe找到OEP地址,并在REC修复过程中选择顶层进程,输入OEP,自动修复IAT。但不要立即抓取修复,而是将OEP地址更改为区域脱壳后的地址。
整个过程需要对内存分析、异常处理、反汇编和PE结构有深入理解。在脱壳过程中,可能会遇到各种复杂情况,如动态生成的代码、反调试技术等,因此需要灵活应对并具备一定的逆向工程技能。虽然这个过程繁琐,但了解这些技术对于软件安全研究和逆向分析至关重要。
2018-04-20 上传
2011-11-18 上传
风雨_入梦
- 粉丝: 12
- 资源: 45
最新资源
- Aspose资源包:转PDF无水印学习工具
- Go语言控制台输入输出操作教程
- 红外遥控报警器原理及应用详解下载
- 控制卷筒纸侧面位置的先进装置技术解析
- 易语言加解密例程源码详解与实践
- SpringMVC客户管理系统:Hibernate与Bootstrap集成实践
- 深入理解JavaScript Set与WeakSet的使用
- 深入解析接收存储及发送装置的广播技术方法
- zyString模块1.0源码公开-易语言编程利器
- Android记分板UI设计:SimpleScoreboard的简洁与高效
- 量子网格列设置存储组件:开源解决方案
- 全面技术源码合集:CcVita Php Check v1.1
- 中军创易语言抢购软件:付款功能解析
- Python手动实现图像滤波教程
- MATLAB源代码实现基于DFT的量子传输分析
- 开源程序Hukoch.exe:简化食谱管理与导入功能