noderaven/payload-obfuscator
GitHub: noderaven/payload-obfuscator
一款用于学习 Windows PE64 静态规避技术的 Python 工具,通过多种混淆技术降低二进制文件的静态检测特征。
Stars: 0 | Forks: 0
# payload-obfuscator
一款针对 Windows PE64 二进制文件应用静态规避技术的 Python 工具。专为 OSEP (PEN-300) 学习以及 Windows 11 / EDR 静态检测研究而构建。仅供授权实验室使用。
## 状态:第一阶段(静态规避)
第一阶段会生成结构有效且特征稀疏的 PE 文件,能够规避常见的静态启发式检测。注入的 XOR 字符串解密器和 PEB 遍历 API 解析器 stub 已写入二进制文件,但尚未在加载时调用,因此输出的二进制文件在运行时不具备功能。TLS callback 的接入将在第二阶段完成。
## 技术
通过 `ObfuscationPipeline` 按以下顺序应用:
1. `header_normalize` - 将 TimeDateStamp 置零,剥离 Rich header,清除调试目录
2. `string_encrypt` - 对 `.rdata`/`.data` 中的可打印 ASCII 字符串进行 XOR 加密;注入解密器 stub 和表
3. `import_hash` - 用无害的诱饵覆盖高风险导入名称(如 VirtualAlloc、CreateThread 等);注入 ROR-13 PEB 遍历解析器 stub
4. `section_rename` - 将节重命名为看似合理的 MSVC 名称;保留关键节(`.rsrc`、`.reloc`、`.tls`)
5. `entropy_reduce` - 用低熵模式填充节间隙,以规避加壳启发式检测
6. `junk_sections` - 附加一个低熵诱饵节
## 安装
```
git clone https://github.com/noderaven/payload-obfuscator.git
cd payload-obfuscator
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
需要 Python 3.10+。支持跨平台运行;已在 Linux/Kali 上测试。
## 用法
```
# 列出可用的 techniques
python __main__.py --list-techniques
# 混淆 binary(默认输出: _obf.exe)
python __main__.py path/to/input.exe
# 指定输出、跳过 techniques、启用 debug logging
python __main__.py input.exe -o output.exe --skip junk_sections,entropy_reduce --verbose
```
执行 `pip install -e .` 后,也可以使用 `payload-obfuscator` 命令行脚本。
## 开发
```
pip install -r requirements-dev.txt
pytest # 47 tests
python src/stubs/generate.py # regenerate stub bytes (requires keystone-engine)
```
## 免责声明
仅供教育用途。旨在用于授权的实验室目标以及与 OSEP (PEN-300) 课程相关的自学。作者不对任何滥用行为负责。
标签:DNS 反向解析, PE文件处理, Python, 安全规则引擎, 数据展示, 无后门, 混淆, 红队, 逆向工具