PE-Packer是一款针对Windows PE文件的简单加壳程序,加壳后的可执行文件可以对逆向分析过程造成干扰。
对PE文件加壳时,程序会进行如下工作:
- 转换导入表结构。
- 加密节区数据。
- 清除节区名称。
- 安装解密模块。
加壳后的文件启动时,解密模块会加载原始数据及代码:
- 解密节区数据。
- 初始化导入表。
- 重定位。
PE文件加壳前,使用一些反汇编工具可以自动分析其汇编代码及数据,例如IDA Pro。
加壳后,逆向分析过程会受到干扰。
该项目目前仅用于初学者学习Windows PE格式和汇编语言,其仍存在兼容性问题及其他Bug,尚不能用于实际生产环境。
该项目必须编译为Windows 32位版本,目前也只支持针对32位.exe
文件的加壳处理。
mkdir -p build
cd build
cmake .. -D CMAKE_C_COMPILER=gcc -G "MinGW Makefiles"
cmake --build .
或直接执行build.ps1
文件:
PS> .\build.ps1
对可执行文件加壳时,需要指定其输入路径和输出路径。
PE-Packer <input-file> <output-file>
例如:
PE-Packer hello.exe hello-pack.exe
可以使用Doxygen生成项目文档。
使用MIT协议,请参考LICENSE
文件。