有接触过软件逆向的朋友会知道,大多数开发者在开发好一款软件后,为了保护自己的知识产权不被盗用,会选择给软件加壳。
壳的种类多种多样,我们在加壳的时候要选择适合我们的壳。
常见壳的三种类型
- 压缩壳:对软件进行压缩,减小软件的体积
- 保护壳:对软件代码进行保护,防止被盗用破解
- 捆绑壳:保护软件防破解,被破解会释放捆绑的病毒
壳的用途
- 保护版权信息-不让别人随便更改作者版权信息;
- 减小程序体积-方便存储、传输、使用;
- 黑客界给木马等软件加壳,主要为躲避杀毒软件;
常见的壳与加壳工具
- 压缩壳
- UPX【工具:UPX shell】
- ASPack【工具:ASPack 2.12】
- PECompact【工具:PECompact V2 GUI】
- RLPack【工具:RLPack】
- NsPack【工具:NsPack】
- 保护壳
- ASProtect【工具:ASProtect】
- Armadillo【工具:Armadillo】
- EXECryptor【工具:EXECryptor】
- Themida【工具:Themida】
- VMProtect【工具:VMProtect】
- 捆绑壳
- MoleBox【工具:MoleBox Pro】
壳的辨认
知道了有这么多种类的壳还远远不够,我们还需要明确的辨认出一个软件所使用的壳的种类。
每种壳在添加到软件中之后,软件的源代码是会发生变化的,这种变化我们当然是不可能软件的源码中看到的,因为编译好并且加壳的软件我们是看不到源码的。
这里,为大家介绍一个工具:OllyDbg(OD) ,这里先不具体给大家讲这个工具,大家只需要知道,这个工具可以让我们看到一个已编译的软件的汇编代码,汇编代码就是计算机硬件的语言,即机器语言。

每一种壳的代码在不同的软件上会有一段相同或者类似的区间,我们可以通过这个特征区间代码来区分这个壳。这个操作也是通过OD对汇编代码分析实现的。
在一个软件的汇编代码中寻找辨识一段代码,这个工作量太大了。于是就有人开发了一类软件:查壳软件。他们将每一种壳的特征代码写成一个数据库,通过查壳软件将需要确认壳的软件与数据库进行特征匹配,最后直接得出壳的种类。
常见的查壳工具
- PEID
- StudPE
- PEscan
- Exeinfo PE
查壳软件的使用:一般只需要打开查壳软件,将要查壳的目标文件用鼠标拖到界面即可。
