一、什么是壳
作者编好软件后,编译成exe可执行文件
- 有一些版权信息需要保护起来,不想让别人随便改动,如作者的姓名等
- 需要把程序搞的小一点,从而方便使用,于是,需要用到一些软件,他们能将exe可执行文件压缩
实现上述两个功能,这些软件称为加壳软件或压缩软件。它不同于一般的winzip,winrar等压缩软件。它是压缩exe可执行文件的,压缩后的文件可以直接运行。
二、测壳软件
- FileInfo
待侦测壳的软件(如aa.exe)和fileInfo.exe位于同一目录下,将aa的图标拖到fi的图标上 - language2000
傻瓜式软件,运行后选取待侦测壳的软件即可(open)
三、什么是脱壳
运行加壳程序时, 用户执行的实际上是这个外壳的程序,而这个外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交还给解开后的真正的程序,由于一切工作都是在内存中运行,用户根本不知道也不需要知道其运行过程,只要执行起来没有变化就好。当时有些人担心这些解压缩的工作会给程序带来额外的运行时间,但实际上所有的可执行文件都要读到内存中去执行,文件小了,从计算机硬盘上读到内存的时间自然也少了,两下相抵,实际上用户并不会感觉程序慢了多少。脱壳的就是把在内存中真正还原的程序抓取下来,修正后变成可执行的文件。
四、压缩工具
在Windows 95/NT/2000 上的文件格式是Portable Executable File Format(即PE格式),该格式应用于所有基于Win32的系统。由于现在windows的普及,下面谈到的壳都是基于这种文件格式。我们这里谈的压缩工具不是Winzip,WINRAR等工具(它们是可压缩任何文件),而是谈专门压缩windows下的 PE 格式EXE或DLL文件的工具,压缩的EXE文件是自解压可执行文件。
名称 | 作者 | 介绍 |
ASPack | Alexey Solodovnikov | 是俄国作者Alexey Solodovnikov写的一个非常强大的Win32压缩工具,其压缩率、速度和兼容性很不错,是目前很流行的一种压缩工具。 |
UPX | Markus Oberhumer & Laszlo Molnar | 非常全能的 |
Petite | Ian Luck | 能压缩PE文件的code, data等资源。 |
PE-PACK | ANAKiN | 一个自身体积小巧的压缩工具 |
PKLITE32 | PKWARE, Inc. | 32-位压缩工具(DLL/EXE). |
WWPack32 | Piotr Warezak and Rafal Wierzbicki | 32-位压缩工具(DLL/EXE). |
NeoLite | 32-位压缩工具(DLL/EXE). | |
Shrinker | Blink Inc | 32-位压缩工具(DLL/EXE). |
五、脱壳工具
一般某种压缩工具的壳,都会有相应的脱壳工具,因此只要找到较新版本的脱壳工具, 一般的壳都可轻易脱去。
名称 | 作者 | 介绍 |
ASPack unpacker | bane | 脱ASPack的压缩PE文件。 |
UnPEPack | M.o.D. | 脱PEPack的壳 |
ProcDump32 | 十分优秀的“万能”脱壳工具,可惜不升级了,因此只能自动脱些老版本压缩工具的壳,但可通过脚本命令使其升级。也是一款优秀的PE修改工具。 |