软件加壳脱壳技术教程
加壳与脱壳应用及实现

加壳与脱壳的应用与实现一、加壳 (2)1.什么是壳 (2)2.加壳原因 (2)3.壳的加载过程 (3)4.压缩引擎 (5)5.常见的加壳工具 (6)a.常用压缩壳介绍 (6)b.加密保护壳介绍 (7)二、脱壳 (10)1.侦壳 (10)2.脱壳 (13)a.查找程序的真正入口点(OEP) (13)b.抓取内存映像文件 (15)c.输入表重建 (15)附:视频“加壳与脱壳(软件)”和“手动脱壳” (17)加壳与脱壳一、加壳1.什么是壳在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。
它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。
由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,就把这样的程序称为“壳”了。
图1.12.加壳原因就把这样的程序称为“壳”了。
作者编好软件后,编译成exe可执行文件。
1)有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。
2)需要把程序搞的小一点,从而方便使用。
于是,需要用到一些软件,它们能将exe可执行文件压缩。
3)在黑客界给木马等软件加壳脱壳以躲避杀毒软件。
实现上述功能,这些软件称为加壳软件。
3.壳的加载过程1)获取壳自己所需要使用的API地址如果用PE编辑工具查看加壳后的文件,会发现未加壳的文件和加壳后的文件的输入表不一样,加壳后的输入表一般所引入的DLL和API函数很少,甚至只有Kernel32.dll以及GetProcAddress这个API 函数。
壳实际上还需要其他的API函数来完成它的工作,为了隐藏这些API,它一般只在壳的代码中用显式链接方式动态加载这些API函数2)解密原程序的各个区块(Section)的数据壳出于保护原程序代码和数据的目的,一般都会加密原程序文件的各个区块。
在程序执行时外壳将会对这些区块数据解密,以让程序能正常运行。
壳一般按区块加密的,那么在解密时也按区块解密,并且把解密的区块数据按照区块的定义放在合适的内存位置。
软件加壳技术及实现

软件加壳技术及实现软件加壳是一种常见的软件保护技术,通过将原始的可执行文件进行加密和封装,增加软件的安全性和难度,提高软件的抵抗逆向工程、防止破解的能力。
下面将介绍软件加壳技术的原理及实现方法。
1.软件加壳原理软件加壳的基本原理是将原始可执行文件进行加密处理,生成一个加密后的壳程序,再将原始可执行文件嵌入到壳程序中,并根据可执行文件的特征信息进行相应的处理和解密,最终执行原始程序。
具体的加壳流程如下:(1)加密原始可执行文件:使用对称加密算法(如AES、DES等)对原始可执行文件进行加密处理,使其不可读。
(2)生成壳程序:编写一个壳程序,包括解密原始可执行文件、加载和执行原始程序等功能。
壳程序本身一般是已经加密的,以防止被分析破解。
(3)将原始可执行文件嵌入到壳程序中:将加密后的原始可执行文件隐藏在壳程序中,一般是作为一个资源或数据块存在。
(4)运行壳程序:用户双击运行壳程序,壳程序首先进行解密处理,获取原始可执行文件,然后进行加载和执行。
2.软件加壳实现方法(1)静态加壳:在编译链接阶段对可执行文件进行加壳处理。
静态加壳可以通过修改可执行文件的文件头信息和重定位表等方式实现。
(2)动态加壳:在运行时对可执行文件进行加壳处理。
动态加壳使用的是运行时加载原始程序的方式,可以提高软件的安全性,但也会增加运行的开销。
3.加壳脱壳工具目前市面上有很多成熟的加壳脱壳工具可供使用,如UPX、ASPack、FSG等。
这些工具可以方便地对可执行文件进行加壳和脱壳操作,但也容易被黑客用来破解软件。
总结:软件加壳技术是一种常用的软件保护手段,通过加密和封装原始可执行文件,增加软件的安全性和防破解能力。
加壳脱壳工具能够方便地实现对可执行文件的加壳和脱壳操作,但需要注意合理的加密算法和技术选型,以提高软件的安全性。
怎样使用脱壳软件

怎样使用脱壳软件使用脱壳软件是指将一个已经加壳和加密的程序进行去壳操作,以便分析其内部机制和功能。
脱壳操作可以帮助安全研究人员和逆向工程师了解加壳程序的运行方式,分析其潜在的恶意行为和风险,并可能发现潜在的漏洞和安全问题。
下面将介绍一般的脱壳过程和常用的脱壳软件。
一、脱壳软件使用的一般过程:2. 选择适合的脱壳软件:根据目标程序的特征和加壳方式选择合适的脱壳工具。
常见的脱壳软件有OllyDbg、x64dbg、IDA Pro等。
3.加载加壳程序到脱壳软件中:将获取到的加壳程序文件加载到所选的脱壳软件中,通常通过点击软件的“打开”或“载入”按钮来实现。
4.设置断点:在脱壳软件中设置断点,断点可以是程序入口点、解密函数等位置,以便在程序执行过程中暂停执行,并进行相应的分析。
5.运行加壳程序:运行被加载的加壳程序,让其开始执行。
通常,加壳程序在运行时会进行解密、反调试等处理,因此需要在适当的时机暂停执行。
6.分析解密过程:当加壳程序暂停时,可以通过逆向工程和调试工具分析解密过程。
可以查看内存中解密后的内容以及解密算法的具体实现,并将其保存下来。
7.脱壳并验证:经过分析和调试,获取到解密后的内容后,可以将其保存并进行验证。
验证过程可以是检查解密后的内容和原程序的差异、运行解密后的程序以验证其功能等。
8.分析被脱壳程序:对脱壳的程序进行进一步分析,可能需要使用其他反汇编工具、动态分析工具和调试工具等进行代码阅读、数据流分析、函数调用跟踪等操作。
9.编写报告和总结:根据脱壳过程和分析结果,编写报告和总结,记录分析过程中发现的问题、风险和建议。
二、常用的脱壳软件:1. OllyDbg:这是一款非常流行的反汇编和调试工具,适用于Windows系统,可用于脱壳加壳的程序、病毒、逆向等操作。
2. x64dbg:这是一款免费的32位和64位反汇编和调试工具,提供了易于使用的界面和强大的功能,适用于Windows系统。
3. IDA Pro:这是一款高级的静态反汇编工具,可用于对加密代码进行分析和逆向工程,支持多种CPU架构和文件格式。
介绍下加壳识别壳破壳的方法

介绍下加壳识别壳破壳的方法加壳是计算机软件中的一种保护措施,用于保护软件免受逆向工程和盗版侵害。
加壳通过在原始程序上添加一层原生或自定义的壳,在运行时加固被保护的代码,隐藏关键功能和算法,对软件进行加密和压缩等操作,使其更加难以被逆向工程分析和破解。
因此,加壳成为了软件开发者和软件厂商保护自己知识产权和商业模式的重要手段。
然而,随着逆向工程技术的发展,破解加壳技术也变得越来越成熟。
破壳是指绕过加壳保护,还原被保护的软件的原始二进制代码。
下面将介绍几种常见的加壳识别壳破壳的方法。
一、静态分析法静态分析法是在不运行加壳程序的情况下对其进行逆向分析的方法。
通过分析加壳程序的头部信息、导入导出表、节表信息、加壳部分的代码特征等,可以判断出是否存在加壳和使用的壳类型。
然后,借助逆向工程工具(如IDA Pro、OllyDbg等),对加壳程序进行反汇编和调试,还原出被壳保护的原始软件代码。
二、动态调试法动态调试法是通过运行加壳程序,在运行时动态调试其行为,获取关键信息,帮助识别壳的类型和破解壳。
通过使用调试工具,如OllyDbg和x64dbg等,可以在软件运行过程中观察和修改寄存器、内存、堆栈等信息,找到关键的跳转指令,尝试绕过壳的保护和加密操作。
三、壳特征识别法壳特征识别法是通过分析加壳程序的一些特征,如一些特殊字符串、特定函数的调用方式、调用API的顺序等,来识别壳的类型。
根据壳的特征,可以编写脚本或使用专门的壳特征识别工具,从二进制代码中特定的特征,找到壳并进行破解。
四、动态调用链分析法动态调用链分析法是通过分析加壳程序的动态调用链,了解程序的运行过程和保护措施。
通过传递参数、查找调用、分析返回值等方式,逐步跟踪加壳程序的执行流程,找到关键的调用和逻辑判断,破解保护措施,还原原始代码。
虽然破壳技术不断发展,加壳技术也不断进化,但是通过以上方法可以部分或完全破解绝大多数的软件加壳。
要保护软件不被破解,开发者需要采取更加综合和复杂的保护措施,如代码混淆、虚拟机保护、反调试等,提高软件的保护级别,增加破壳难度。
几种用OD脱壳方法

几种用OD脱壳方法OD是反编译软件的一种,可以将可执行文件转换为可读的源代码。
脱壳是指从已经加密或保护的软件中提取出原始的未加密或未保护的代码。
下面是几种常见的OD脱壳方法:1.静态分析法:静态分析是指对二进制文件进行分析,了解其结构、函数调用和控制流程等信息。
通过对逆向工程的分析,可以分析出加密算法和解密函数的位置。
使用静态分析法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。
- 使用各种OD工具,如IDA Pro,OllyDbg等,显示可执行文件的汇编代码。
-通过分析代码和调试程序,找到加密算法和解密函数的位置。
-根据找到的位置,修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。
2.动态调试法:动态调试是指在运行时对程序进行调试和分析。
使用动态调试法脱壳的主要步骤如下:-打开OD软件,将加密的可执行文件加载到OD中。
- 使用动态调试工具,如OllyDbg或GDB等,在程序执行期间跟踪和记录函数调用和内存访问。
-通过分析函数调用和内存访问,找到加密算法和解密函数的位置。
-在找到的位置上下断点,执行程序并使用OD工具查看解密后的代码。
3.内存镜像法:内存镜像法是指通过将程序加载到内存中,并对内存进行镜像和分析来脱壳。
使用内存镜像法脱壳的主要步骤如下:-运行加密的可执行文件。
- 使用内存镜像工具,如DumpBin或WinDBG等,将程序的内存镜像保存到磁盘上。
-使用OD软件加载内存镜像文件。
-通过分析内存镜像文件,找到加密算法和解密函数的位置。
-修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的代码。
这些方法都可以用于将加密的可执行文件转换为可读的源代码,从而进行进一步的分析和修改。
脱壳过程需要进行深入的逆向工程和对程序的理解,因此需要具备一定的技术和知识。
此外,需要注意的是,脱壳过程可能涉及到破解和侵犯版权的行为,应遵守法律规定,并仅限于安全研究和个人学习的目的使用。
upx脱壳方法 -回复

upx脱壳方法-回复UPX(Ultimate Packer for eXecutables)是一种广泛使用的可执行文件压缩器和脱壳器。
它采用了先进的压缩算法,能够有效地减小可执行文件的体积,同时保持文件的可执行性。
然而,有时我们需要对UPX压缩过的可执行文件进行脱壳操作,以便进行进一步的分析或修改。
本文将一步一步介绍UPX脱壳的方法。
第一步:准备工作在开始UPX脱壳之前,我们需要先准备一些工具。
首先,我们需要下载并安装IDA Pro。
IDA Pro是一款非常强大的逆向工程软件,可以帮助我们分析和修改可执行文件。
其次,我们还需要下载并安装UPX工具集,以便进行脱壳操作。
最后,我们需要找到一个已经被UPX压缩过的可执行文件,作为我们的实验对象。
第二步:分析可执行文件打开IDA Pro,并导入我们选定的UPX压缩文件。
通过IDA Pro的静态分析功能,我们可以获取有关该文件的一些基本信息,例如文件的入口点地址和函数列表等。
这将有助于我们在后续操作中准确定位需要脱壳的代码。
第三步:寻找脱壳代码在IDA Pro中,我们需要找到UPX的脱壳代码。
UPX脱壳的主要原理是在运行时将压缩过的可执行文件还原为原始的可执行文件。
因此,UPX脱壳代码的位置通常在程序的入口点之后。
我们可以通过在IDA Pro中分析可执行文件的反汇编代码,寻找与UPX脱壳相关的代码段或函数。
这些代码段或函数通常包含有关文件解压缩和内存映射的指令。
第四步:研究脱壳代码找到UPX脱壳代码后,我们需要仔细研究这段代码的逻辑和功能。
通常,UPX脱壳代码会包含一系列指令,用于解压缩数据并将其映射到内存中。
通过对脱壳代码的分析,我们可以了解到UPX是如何解压缩和还原可执行文件的。
第五步:修改脱壳代码在研究了脱壳代码后,我们可以尝试对其进行修改,以实现我们的需求。
可能的修改包括改变解压缩的方式、修改解压缩后的文件内容等。
通过在IDA Pro中编辑脱壳代码,我们可以实现对UPX脱壳过程的定制。
如何将EXE安装文件脱壳和破解

如何将EXE安装文件脱壳和破解
首先,我要强调,破解软件和脱壳软件违反了软件版权法,这是非法
行为。
那么,如何脱壳和破解EXE安装文件呢?
1.脱壳软件
脱壳是指将被打包、加密或保护的EXE文件还原为原始的可执行文件。
脱壳软件通常需要一些专业的技术知识,并且不同软件的脱壳方法也会有
所不同。
下面是一些常见的脱壳方法:
-调试器:将脱壳软件用调试器打开,断点在加载代码之前的位置上,使得在加载期间可以捕捉到呈现在内存中的文件。
- 静态分析:通过静态分析工具,如IDA Pro,分析文件的指令、数
据和控制流,找出加密和保护技术,并获取原始的可执行文件。
2.破解软件
破解软件是指破解免注册版或试用期软件的功能限制,以获得免费使
用所需功能的方法。
以下是一些常见的破解方法:
-序列号生成器:破解序列号的软件,通过生成有效的序列号来解锁
软件的功能限制。
-反向工程:通过逆向工程将软件中的保护措施绕过或关闭,以便在
未注册的情况下使用软件的全部功能。
- Patching:通过修改软件的二进制代码,删除或绕过软件的注册验证,以实现破解的目的。
无论您是否打算进行此类操作,我们鼓励您始终遵守版权法。
许多软
件公司对未经授权的破解行为采取法律行动,并对侵权者提起诉讼。
同时,使用未经授权的破解软件可能会导致您的计算机感染恶意软件或病毒。
因此,我们建议您遵守软件许可协议,并根据开发商提供的合法方式
获得软件的完整功能。
如果您希望获得一款软件的全部功能,可以考虑购
买正版软件或使用免费的替代品。
加壳免杀与脱壳反编译图文教程

加壳免杀与脱壳反编译图文教程时间:2009-09-14 10:24来源:安全中国第一、什么是免杀?免杀,也就是反病毒(Anti Virus)与反间谍(Anti Spyware)的对立面,英文为Anti Anti- Virus(简写Vi rus AV),逐字翻译为“反-反病毒”,我们可以翻译为“反杀毒技术”。
单从汉语“免杀”的字面意思来理解,可以将其看为一种能使病毒木马免于被杀毒软件查杀的技术。
但是不得不客观地说,免杀技术的涉猎面非常广,您可以由此轻松转型为反汇编、逆向工程甚至系统漏洞的发掘等其他顶级黑客技术,由此可见免杀并不简单。
第二、什么是加壳?加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段. 其实是利用特殊的算法,对EXE、D LL文件里的资源进行压缩、加密。
类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。
它们附加在原程序上通过Windows加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。
加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译.第三、什么是脱壳?脱壳是站在加壳的对立面的,如果说加壳是变化,脱壳就是还原.第四、什么是反编译?高级语言源程序经过编译变成可执行文件,反编译就是逆过程。
但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。
计算机软件反向工程(Reversepengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.壳的概念
作者编好软件后,编译成exe可执行文件
1.有一些版权信息需要保护起来,不想让别人
随便改动,如作者的姓名等
2.需要把程序搞的小一点,从而方便使用
于是,需要用到一些软件,他们能将exe可执行文件压缩,
实现上述两个功能,这些软件称为加壳软件或压缩软件.
它不同于一般的winzip,winrar等压缩软件.
解密(脱壳)技术的进步促进、推动了当时的加密(加壳)技术的发展。LOCK95和BITLOK等所谓的“壳中带籽”加密程序纷纷出笼,真是各出奇谋,把小小的软盘也折腾的够辛苦的了。正在国内的加壳软件和脱壳软件较量得正火红的时候,国外的“壳”类软件早已经发展到像LZEXE之类的压缩壳了。这类软件说穿了其实就是一个标准的加壳软件,它把EXE文件压缩了以后,再在文件上加上一层在软件被执行的时候自动把文件解压缩的“壳”来达到压缩EXE文件的目的。接着,这类软件也越来越多,PKEXE、AINEXE、UCEXE和后来被很多人认识的WWPACK都属于这类软件,但奇怪的是,当时我看不到一个国产的同类软件。
过了一段时间,可能是国外淘汰了磁盘加密转向使用软件序列号的加密方法吧,保护EXE文件不被动态跟踪和静态反编译就显得非常重要了。所以专门实现这样功能的加壳程序便诞生了。MESS、CRACKSTOP、HACKSTOP、TRAP、UPS等等都是比较有名气的本类软件代表,当然,还有到现在还是数一数二的,由台湾同胞所写的FSE。其实以我的观点来看,这样的软件才能算是正宗的加壳软件。
1998年8月,一个名为UNSEC(揭秘)的脱壳软件发表了,它号称可以脱掉98年8月以前发表的所有壳。我测试之后,觉得并没传闻中的那么厉害,特别是兼容性更是令我不想再碰它。Ding-Boy给这个软件的作者提了很多建议,但寄去的EMIAL有如泥牛入海,可能是一怒之下吧,不久Ding-Boy的BW(冲击波)就诞生了。这个使用内存一次定位生成EXE文件(后来放弃了)的脱壳软件,在我的站台公开后,得到了很多朋友们的肯定。要知道,从RCOPY 3开始,绝大部分的脱壳软件都是要两次运行目标程序来确定EXE的重定位数据的。BW的这一特点虽然有兼容性的问题,但也树立了自己的风格、特色。经过几个月的改善,BW升级到了2.0版本,这个版本的推出可以说是BW的转折点,因为它已经是一个成熟、稳定脱壳软件了,它可以对付当时(现在)大多数的壳,包括当时最新的FSE 0.6等。更重要的是这个版本把选择壳的和软件“分界线”这个最令新手头疼的步骤简化到不能再简化的地步,使更多的朋友接受了它。另外,能加强BW功力的CI模式也是其它脱壳软件没有的东西。最近,BW发表了最新的2.5 BETA2版本,增强了一些方面的功能,因它竟然可以脱掉号称最厉害的磁盘加密工具LOCKKING 2.0的加密壳,因而进一步奠定了它在“脱壳界”的地位。说到最新,就不能不提GTR、LTR、EDUMP、ADUMP、UPS、UPX、APACK这几个国外的好软件了,它们每个都有自己的特色,可以说都是当今各类“壳”中的最新代表了。(这些软件和详细介绍请到我的主页查阅)
BW的作者Ding-Boy最新发表了一个WIN95的EXE加壳软件DBPE。虽然它还不太成熟,但它可以为软件加上使用日期限制这个功能是其它加壳软件所没有的,或者以后的加壳软件真的会是像他说的那样可以:加壳和压缩并重、并施;随意加使用日期;加上注册码;加软件狗(磁盘)保护;加硬件序列号判别;加...。
在以上这些加壳软件的不断升级较劲中,很多软件都把比较“极端”技术用了上去,因为在这个时候DOS已经可以说是给众高手们玩弄在股掌之间了,什么保护模式、反SICE、逆指令等等。相对来说,在那段时间里发表的很多国外脱壳程序,根本就不能对付这么多的加壳大军,什么UPC、TEU等等都纷纷成为必防的对象,成绩比较理想的就只有CUP386了,反观国内,这段时间里也没了这方面的“矛盾斗争”。加壳软件门挥军直捣各处要岗重地,直到在我国遇到了TR这个铜墙铁壁以后,才纷纷败下阵来各谋对策,但这已经是一年多以后的事情了。我常想,如果TR能早两年“出生”的话,成就肯定比现在大得多,甚至盖过SICE也有可能。TR发表的时候WIN95的流行已经成为事实,DOS还有多少的空间,大家心里都清楚。但话又说回来,TR的确是个好软件,比起当年的RCOPY3有过之而无不及,同时也证明了我们中国的CRACK实力(虽然有点过时)。这个时候,前面提到过的FSE凭着强劲的实力也渐渐的浮出了水面,独领风骚。其时已经是1997年年底了,我也走完了学生“旅程”。工作后在CFIDO的CRACK区认识了Ding-Boy,不久CRACK区关了,我从此迷上了INTERNET,并于98年6月建起了一个专门介绍“壳”的站台: ;,放上了我所收集的所有“壳”类软件。在这段时间里,各种“壳”类软件也在不段的升级换代,但都没什么太大的进展,差不多就是TR和众加壳软件的版本数字之争而已。
一切从“壳”开始
首先大家应该先明白“壳”的概念。在自然界中,大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。
它是压缩exe可执行文件的,压缩后的文件可以直接运行.
二.加壳软件
最常见的加壳软件ASPACK ,UPX,PEcompact
不常用的加壳软件WWPACK32;PE-PACK;PETITE;NEOLITE
三.侦测壳和软件所用编写语言的软件
1.侦测壳的软件fileinfo.exe简称fi.exe(侦测壳的能力极强)
没加壳软件无任何提示。
加密壳有些Od载入时会提示压缩,基本上F9运行后,OD提示程序异常。
普通加壳Od载入时一般都会发现,提示软件被加壳,是否继续分析。
还有些是脱壳没有脱干净,Od载入时也提示加壳。
更猛的壳用Od载入就异常,如Acprotect。
关于壳的知识不是一两篇文章就能说清,要经过大量的各种壳的脱壳经验,参考文章。
使用方法:
第一种:待侦测壳的软件(如aa.exe)和fi.exe位于同一目录下,执行
windows起始菜单的运行,键入
fi aa
第二种:待侦测壳的软件(如aa.exe)和fi.exe位于同一目录下,将aa的图标拖到fi的图标上
2.侦测壳和软件所用编写语言的软件language.exe(两个功能
合为ቤተ መጻሕፍቲ ባይዱ体,很棒)推荐language2000中文版,我的主页可下载
最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件RCOPY 3的作者熊焰先生。在几年前的DOS时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。但毕竟在当时,甚至现在这样的人也不是很多,所以当RCOPY3这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成EXE可执行文件这项,就应该是世界首创了。但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的RO97),这个想法也在后来和作者的面谈中得到了证实。在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有:UNKEY、MSCOPY、UNALL ....等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。
由于WINDOWS 3.1只是基于DOS下的一个图形外壳,所以在这个平台下的“壳”类软件很少,见过的就只有像PACKWIN等几个有限的压缩工具,终难成气候。
可能是MICROSOFT保留了WIN95的很多技术上的秘密吧,所以即便是WIN95已经推出了3年多的时间,也没见过在其上面运行的“壳”类软件。直到98年的中期,这样的软件才迟迟的出现,而这个时候WIN98也发表了有一段日子了。应该是有DOS下的经验吧,这类的软件不发表由自可,一发表就一大批地的冲了出来。先是加壳类的软件如:BJFNT、PELOCKNT等,它们的出现,使暴露了3年多的WIN95下的PE格式EXE文件得到了很好的保护。大家都应该知道现在很多WIN95下的软件都是用注册码的方法来区分、确定合法与非法用户的吧,有了这类加壳软件,这种注册方法的安全性提高了不少,如果大家也有自己编的WIN95程序,就一定要多留意一下本类软件了。接着出现的就是压缩软件了,因为WIN95下运行的EXE文件“体积”一般都比较大,所以它的实用价值比起DOS下的压缩软件要大很多,这类的软件也很多,早些时候的VBOX、PEPACK、PETITE和最近才发表的ASPACK、UPX都是其中的佼佼者。在DOS下很流行的压缩软件WWPACK的作者也推出了对应WIN95版本的WWPACK32,由于性能并不是十分的突出,所以用的人也不太多。由于压缩软件其实也是间接给软件加了壳,所以用它们来处理EXE也是很多软件作者喜欢做的事情,最近新发表的很多软件里都可以看到这些加壳、加压缩软件的名字了。有加壳就一定会有脱壳的,在WIN95下当然也不例外,但由于编这类软件比编加壳软件要难得多,所以到目前为止,我认为就只有PROCDUMP这个软件能称为通用脱壳软件了,它可以对付现在大多数的加壳、压缩软件所加的壳,的确是一个难得的精品。其它的脱壳软件多是专门针对某某加壳软件而编,虽然针对性强、效果好,但收集麻烦,而且这样的脱壳软件也不多。前些时候TR作者也顺应潮流发表了TR的WIN95版本:TRW,由现在的版本来看可以对付的壳还不多,有待改进。