在一些计算机
软件里也有一段专门负责保护
软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到
控制权,然后完成它们保护
软件的任务。就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。就像计算机病毒和自然界的病毒一样,其实都是命名上的
方法罢了。
从功能上抽象,
软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的
代码。原始程序的
代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段
代码先于原始程序运行,他把压缩、加密后的
代码还原成原始程序
代码,然后再把执行权交还给原始
代码。
软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被
破解)。关于“壳”以及相关
软件的发展历史请参阅吴先生的《一切从“壳”开始》。
(一)壳的概念
作者编好
软件后,编译成exe可执行文件。
1.有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名,即为了保护
软件不被
破解,通常都是采用加壳来进行保护。
2.需要把程序搞的小一点,从而方便使用。于是,需要用到一些
软件,它们能将exe可执行文件压缩,
3.在
黑客界给
木马等
软件加壳
脱壳以躲避杀毒
软件。
实现上述功能,这些
软件称为加壳
软件。
(二)加壳
软件最常见的加壳
软件 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+aspack:次之,国外的
软件多用它加壳,
脱壳时需要用到SOFTICE+ICEDUMP,需要一定的专业知识,但
最新版现在暂时没有办法。
(3)Upx:可以用UPX本身来
脱壳,但要注意版本是否一致,用-D 参数
(4)Armadill: 可以用SOFTICE+ICEDUMP脱壳,比较烦
(5)Dbpe:国内比较好的加密
软件,新版本暂时不能脱,但可以
破解 (6)NeoLite: 可以用自己来
脱壳 (7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE来
脱壳 (8)Pecompat: 用SOFTICE配合PEDUMP32来
脱壳,但不要专业知识
(9)P