壳加壳脱壳技术详解及实战操作完整指南
壳是保护软件的一段先行代码,通过压缩或加密隐藏程序入口。加壳用于版权保护、压缩体积或逃避检测。脱壳需先侦测壳型,再用对应工具处理,流程包括查壳、找OEP、转储和修复。常用工具如UPX、UNASPACK、Procdump等。
先说说“壳”这件事
说到软件外壳,大家应该都不陌生。自然界里,植物用壳保护种子,动物用壳保护身体,本质上都是在核心外面加一层防护。而在计算机软件的世界里,同样存在一段特殊的程序——它专门负责保护软件不被非法修改或反编译。这段程序通常先于原始程序运行,拿到控制权后再执行保护任务。就像动植物的壳长在身体外面一样,这类程序也被形象地称为“软件壳”或“保护壳”。(当然,后来也出现了所谓的“壳中带籽”的变种。)
从功能上进行抽象,软件的壳和自然界中的壳其实相差无几——无非是保护和隐藏壳内的代码和数据。从技术角度来说,壳就是一段在原始程序之前执行的代码。在加壳过程中,原始代码可能被压缩、加密甚至变形。当加壳后的文件被执行时,壳代码先运行,把压缩或加密后的代码还原成原始程序,然后再把执行权交还回去。
软件的壳分类很多,比如加密壳、压缩壳、伪装壳、多层壳等等。这些壳的目标只有一个:隐藏程序真正的OEP(入口点),防止被破解。关于壳以及相关软件的发展历史,可以阅读吴先生的那篇《一切从“壳”开始》,这里不再赘述。
壳的概念
开发者写完软件后,编译成exe可执行文件。为什么会想到加壳?主要有几个原因:
一是版权保护。有些信息不想让别人随便改动,比如作者的署名。为了保护软件不被破解,加壳是最常见的做法。
二是压缩体积。让程序小一点,更方便使用。于是出现了能压缩exe文件的加壳工具。
三是安全领域的应用。在黑客界,给木马等软件加壳或脱壳,以躲避杀毒软件的检测。
能实现上述功能的软件,统称为加壳软件。
加壳软件
最常见的:ASPACK、UPX、PEcompact。
不那么常见的:WWPACK32、PE-PACK、PETITE、NEOLITE。
侦测壳和编写语言的软件
脱壳之前,首先要搞清楚壳的类型。这就需要用到侦测工具:
1. 侦测壳的软件:fileinfo.exe(简称fi.exe),侦测壳的能力极强。
2. 二合一的侦测工具:language.exe,既能查壳也能检测编写语言。推荐language2000中文版,专门检测加壳类型。
3. 常见的编写语言:Delphi、VisualBasic(VB,最难破解)、VisualC(VC)。
脱壳软件
加壳是开发者为了保护代码和软件产权常用的手段。有盾自然就有矛,市面上已经有大量成熟的脱壳工具。软件脱壳分为手动脱和自动脱两种。先介绍自动脱壳,因为手动脱壳需要汇编语言基础和断点跟踪能力,不太适合初学者。
加壳本质上属于软件加密,而越来越多的软件经过压缩处理,给汉化带来了不少麻烦。软件汉化爱好者也不得不掌握这项技能。目前脱壳分手动和自动两类。手动脱壳需要用到TRW2000、TR、SOFTICE等调试工具,对汇编语言和软件调试知识有一定要求。自动脱壳则是用专门的脱壳工具来操作——最常用的做法是,每种压缩软件都有对应的反压缩工具。有些压缩工具自身就支持解压(如UPX),有些不提供这个功能(如ASPACK),就需要用UNASPACK来对付。好处是操作简单,缺点是版本更新后可能失效。
另外,还有一种通用的脱壳工具是PROCDUMP v1.62,能对付目前大多数压缩软件的压缩档。下面介绍一些通用方法和常用工具,供大家参考。知道了文件的加密方式,就能选择对应的工具和方法进行脱壳。
脱壳的基本原则:单步跟踪,只能往前,不能往后。
脱壳的一般流程:查壳 → 寻找OEP → Dump → 修复。
找OEP的思路:先判断壳是加密壳还是压缩壳。压缩壳相对容易,一般没有异常,找到对应的popad后就能到达入口,跳转方式通常是固定的。
知道了文件被哪种压缩加壳软件加密,下一步就是分析加密软件的名称和版本。不同软件甚至不同版本加的壳,脱壳处理的方法都不一样。
常用脱壳工具
1. 文件分析工具(侦测壳的类型):Fi、GetTyp、peid、pe-scan。
2. OEP入口查找工具:SoftICE、TRW、ollydbg、loader、peid。
3. Dump工具:IceDump、TRW、PEditor、ProcDump32、LordPE。
4. PE文件编辑工具:PEditor、ProcDump32、LordPE。
5. 重建Import Table工具:ImportREC、ReVirgin。
6. ASProtect脱壳专用工具:Caspr(ASPr V1.1-V1.2有效)、Rad(只对ASPr V1.1有效)、loader、peid。
各类壳的脱法
(1)Aspack:用得最多,用UNASPACK或PEDUMP32脱壳即可。
(2)ASProtect:次之,国外软件多用它加壳。脱壳需要SOFTICE、ICEDUMP,需要一定专业知识。最新版暂时没有解决方案。
(3)UPX:可以用UPX本身脱壳,注意版本一致,使用 -d 参数。
(4)Armadill:可以用SOFTICE、ICEDUMP脱壳,比较麻烦。
(5)Dbpe:国内较好的加密软件,新版本暂时不能脱,但可以破解。
(6)NeoLite:可以用自己脱壳。
(7)Pcguard:用SOFTICE、ICEDUMP、FROGICE脱壳。
(8)Pecompat:用SOFTICE配合PEDUMP32脱壳,不需要专业知识。
(9)Petite:部分老版本可用PEDUMP32直接脱壳,新版本需要SOFTICE、ICEDUMP,需要一定专业知识。
(10)WWpack32:和PECOMPACT类似,部分老版本可用PEDUMP32直接脱壳,但有时资源无法修改,也就无法汉化。最好用SOFTICE配合PEDUMP32脱壳。
平时最常用的通用脱壳软件是Procdump32,它能解开绝大部分加密外壳,还支持脚本功能,可以轻松解开特定外壳的加密文件。另外,很多时候还需要用到exe可执行文件编辑软件UltraEdit(汉化注册版,注册机可网上搜到)。用UltraEdit打开一个中文软件——如果加了壳,许多汉字无法被识别;如果未加壳或已脱壳,汉字就能正常显示。UltraEdit也可以用来检验壳是否脱掉。熟练之后,还能用它的替换功能替换作者姓名为你自己的名字,注意字节必须相等:两个汉字替两个,三个替三个,不足处在左边用00补。
常见壳的脱法举例
1. Aspack壳:可用unaspack或caspr。
unaspack:类似language,傻瓜式软件,运行后选取待脱壳的软件即可。缺点是只能脱较早版本的aspack壳,不能脱高版本。
caspr(两种用法):第一种,待脱壳的软件(如aa.exe)和caspr.exe在同一目录,运行菜单“运行”,输入 caspr aa.exe,脱壳后的文件名为aa.ex_,删除原aa.exe,将aa.ex_改名为aa.exe。类似fi的用法。优点是可脱任何版本的aspack壳,脱壳能力极强。缺点:DOS界面。第二种,直接将aa.exe的图标拖到caspr.exe的图标上。
注意:如果已侦测出是aspack壳,用unaspack脱壳出错,说明是高版本,用caspr脱即可。
2. UPX壳:用UPX本身脱壳。待脱壳的软件(如aa.exe)和upx.exe在同一目录,运行菜单输入 upx -d aa.exe。
3. PEcompact壳:用unpecompact。类似language,傻瓜式软件,运行后选取待脱壳的软件即可。
4. Procdump:万能脱壳但不精,一般不建议使用。运行后先指定壳的名称,再选定欲脱壳软件,确定即可。脱壳后的文件大于原文件。
由于脱壳软件已经非常成熟,手动脱壳在实际操作中基本用不到。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
零基础Python网络安全学习指南,包住宿实战培训
先抛出几个核心判断:网络安全人才缺口确实已经超过70万。这个数字不算夸张,各大招聘网站上安全岗位的薪资涨幅和需求增长都是实实在在的。但实话实说,行业真正缺的是能上手干活的人,不是只懂几个理论概念的新手。因此,一套扎实且成体系的训练方案,对于零基础转行或进阶提升就显得格外关键。 从零基础到能够独立应对
网络安全定义与核心概念详解
谈到网络安全,不同组织与标准体系对其定义虽有差异,但核心目标高度统一:保护信息与系统不受威胁侵害。以下梳理几种主流定义—— 什么是网络安全? 国际标准化组织(ISO)在ISO-74982文献中将安全定义为:最大程度地降低数据和资源遭受攻击的可能性。该定义虽简短,却精准点出安全的本质——即风险控制。
IIS 7.0网站漏洞利用与修复方法指南
先来聊聊当前网络安全领域比较流行的一种实战技巧——以PHP环境为例,详细讲解图片马合并与解析漏洞利用的具体操作步骤。整个过程并不复杂,但细节往往决定成败,大家跟着流程逐步操作即可。 合并一张PHP一句话图片马 首先,我们需要将一句话木马脚本与一张正常图片合并,生成一个看似无害的图片文件。合并方式主要
织梦管理系统后台查找功能教程
通过SQL注入漏洞获取织梦CMS(DedeCMS)管理员密码后,满怀期待地准备进入后台,却发现怎么也找不到登录入口——这种情况其实相当常见。别着急,这里有一个实用的技巧值得尝试。 直接在网站地址后面添加以下路径: include dialog select_media php?f=form1 mur
微软IE浏览器BrowseDialog类(ccrpbds6.dll)拒绝服务安全漏洞深度分析
BrowseDialog Class (ccrpbds6 dll) 导致 Internet Explorer 拒绝服务漏洞分析 该漏洞的PoC(概念验证代码)实现极为直接——触发浏览器崩溃的条件简单得令人意外。测试环境采用Windows XP Professional SP2(已安装全部补丁)并运行
- 热门数据榜
相关攻略
2026-07-25 22:28
2026-07-25 22:28
2026-07-25 22:28
2026-07-25 22:28
2026-07-25 22:10
2026-07-25 22:10
2026-07-25 22:10
2026-07-25 22:10
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

