akgvnx/PyExecDeobfuscator
GitHub: akgvnx/PyExecDeobfuscator
基于 DLL 注入与底层函数挂钩的运行时工具,专门用于动态拦截并提取通过 exec() 执行的混淆 Python 代码明文。
Stars: 1 | Forks: 0
# PyExecDeobfuscator
Runtime Python exec 钩子系统,用于提取通过 `exec()` 执行的混淆 Python 代码。
## 概述
PyExecDeobfuscator 是一个基于 Windows 的研究工具,它可以钩入 Python 运行时并捕获动态执行的 Python 代码。
它专为分析使用 `exec()` 或 `eval()` 的混淆或打包的 Python 脚本而设计。
该项目包含:
- DLL 钩子模块 (https://github.com/akgnx/PyExecDeobfuscator)
- 注入器 (https://github.com/akgnx/PyExecDeobfuscator/tree/main/PyExecDeobfuscator_Injector)
## 功能特性
- 钩取 Python 运行时函数:
- `PyRun_StringFlags`
- `PyEval_EvalCode`
- 捕获动态执行的 `exec()` 代码
- 记录超长运行时 Python 负载(大于等于 200 个字符)
- 支持 Python 3.7 – 3.13
- 检测 PyInstaller 生成的 exe 文件
- 注入目标:
- 通过 `python.exe` 运行的 `.py` 脚本
- 已编译的 `.exe` 文件 (PyInstaller)
## 工作原理
1. 注入器启动目标进程
2. 进程以挂起模式创建
3. 使用 `CreateRemoteThread` + `LoadLibraryA` 注入 DLL
4. 钩子 DLL 附加到 Python 运行时
5. 运行时的 `exec()` / eval 求值调用被拦截
6. 捕获的代码被记录到文件中
## 使用说明
### 构建
构建这两个项目:
- 注入器项目
- DLL 项目 (PyExecDeobfuscator.dll)
确保 Microsoft Detours 已正确安装并链接。
### 运行
injector.exe
### 示例
- injector.exe test.py PyExecDeobfuscator.dll
- 对于 PyInstaller:
injector.exe target.exe PyExecDeobfuscator.dll
- 捕获的 Python 代码将保存至:
akgnx_hooklog.txt
- 仅记录大于 200 个字符的 `exec()` 负载。
标签:API Hooking, C++, Conpot, DAST, Detours, DLL注入, DNS 解析, eval拦截, exec拦截, PyInstaller解包, Python逆向, UML, Windows安全, 云资产清单, 代码反混淆, 代码提取, 恶意软件分析, 数据擦除, 流量审计, 端点可见性, 运行时Hook, 逆向工具, 逆向工程, 静态分析辅助