Python EXE 解包器是一个功能强大的逆向工程工具,专为解析和解包由 Python 编译的 Windows 可执行文件设计。这款工具整合了多个社区优秀工具,为安全研究人员、开发者和技术爱好者提供了一站式的 Python 可执行文件分析解决方案。
工具价值与定位
Python EXE 解包器不仅仅是一个简单的解包工具,它代表了 Python 逆向工程领域的技术集大成者。与传统单一工具相比,它具备以下独特优势:
- 智能识别机制:自动检测可执行文件的打包方式,无论是 PyInstaller 还是 py2exe,都能准确识别并采用相应的解包策略
- 版本兼容性广:完美支持 PyInstaller 2.0、2.1+、3.0、3.1、3.2 等多个版本
- 加密处理能力:能够处理加密的 Python 字节码,为恶意软件分析提供关键支持
快速上手体验
5 分钟环境配置
首先确保您的系统已安装 Python 2.7 或更高版本,然后安装必要的依赖包:
pip install -r requirements.txt
核心依赖包括:
- pefile:PE 文件解析库
- unpy2exe:py2exe 解包工具
- uncompyle6:pyc 文件反编译专家
- xdis:Python 字节码反汇编器
首个 EXE 文件解包实战
让我们从最简单的示例开始,体验 Python EXE 解包的魅力:
python python_exe_unpack.py -i target.exe
对于需要自定义输出目录的场景:
python python_exe_unpack.py -i target.exe -o /custom/output/path
深度功能解析
核心解包机制揭秘
工具的核心架构基于抽象基类 PythonExectable,定义了统一的解包器接口。主要包含三个核心类:
- PyInstaller 类:处理 PyInstaller 打包的可执行文件
- Py2Exe 类:处理 py2exe 打包的可执行文件
- MagicPrepend 类:处理缺少魔法字节的 pyc 文件
PyInstaller 归档解析技术
工具通过分析 PyInstaller 的 CArchive 结构来提取文件,具体流程包括:
- Cookie 信息读取:从文件尾部读取 PyInstaller 的特定标识
- 目录表解析:解析文件内部的目录结构信息
- 数据提取:根据目录信息提取压缩或未压缩的文件数据
加密文件处理流程
当遇到加密的 pyinstaller 可执行文件时,工具会执行以下步骤:
def __decrypt(self):
extracted_binary_path = self.extraction_dir
encrypted_key_path = os.path.join(extracted_binary_path, "pyimod00_crypto_key")
if self.__is_encrypted(extracted_binary_path, encrypted_key_path):
encryption_key = .__get_encryption_key(encrypted_key_path)
encryption_key :
.__decrypt_pyc(extracted_binary_path, encryption_key)

