先普及几个概念:
- PE文件:portable executable(可移植的可执行文件),主要在Windows系统中,包括exe/dll/sys文件。
- 加壳:是利用特殊的算法,对EXE、DLL文件里的资源进行压缩、加密。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。它们附加在原程序上通过Windows加载器载入内存后,先于原始 程序执行,得到控制权,执行过程中对原始程序进行解密、还原,还原完成后再把控制权交还给原始程序,执行原来的代码部分。加上外壳后,原始程序代码在磁盘 文件中一般是以加密后的形式存在的,只在执行时在内存中还原,这样就可以比较有效地防止破解者对程序文件的非法修改,同时也可以防止程序被静态反编译。
一、使用UPX对exe文件进行加壳:打开文件之后直接执行,会发现exe文件的大小变小了
- 使用PEiD对于加壳后的文件进行探测:可以看到显示被加了壳
- 使用UPX脱壳:并且大小恢复到原来的大小
- 再用PEiD进行探测:发现已经脱掉了壳