1、相关知识:
(1)加壳
加壳的全称应该是可执行程序资源压缩,是保护文件的常用手段。加壳过的程序可以直接运行,但是不能查看源代码.要经过脱壳才可以查看源代码。
加壳的程序经常想尽办法阻止对程序的反汇编分析或者动态分析,以达到保护源码的目的。这种技术也常用来保护软件版权,防止被软件破解。
(2)加壳软件
加壳软件可分为两类:一类是压缩,一类是保护。压缩的目的是减少程序体积,如ASPack、UPX、PECompact等。保护是为了防止程序被跟踪和调 试,如ASProtect、幻影。壳的存在会让我们找不到程序的真实入口点,从而不能正确的分析反汇编程序,也就对程序起到了一定的保护作用。
(3)加壳原理
加壳是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过Windows加载器载入内存后,先于原始程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。