p-kami-sama/pdf-polyglot-forge

GitHub: p-kami-sama/pdf-polyglot-forge

一个用于安全研究的 PDF polyglot 生成工具包,支持将多种脚本语言 payload 以不同策略注入 PDF 文件并批量生成实验样本。

Stars: 0 | Forks: 0

# pdf-polyglot-forge 一个用于研究生成嵌入了 Bash、JavaScript 和 Python payload 的 PDF polyglot 的工具包。本项目提供了多种合并策略,并支持整洁的格式化和保留文件头。专为数字取证、恶意软件分析研究以及 polyglot 研究而设计,不可用于恶意用途。 ## 📂 目录结构 该仓库的组织结构旨在支持 polyglot 的生成,以及复现我们研究中展示的实验数据: * **`make_pdf_polyglot.py`**:核心 Python 脚本,用于使用不同的结构位置将 payload 注入到 PDF 文件中。 * **`automated_task_scripts/`**:一套辅助 `python` 脚本,用于自动批量生成 polyglot,并验证其语法(`check_polyglots_syntax.sh`)。 * **`generate_graphs/`**:包含实验数据集(`NEW_PDF_tests.csv`)以及用于绘制论文中检测率图表的 Python 脚本(`generate_graph_X.py`)。输出结果保存在 `graphs/` 子文件夹中。 ## ⚙️ 工作原理:`make_pdf_polyglot.py` 主工具接收一个正常的 PDF 和一个 payload 脚本(Bash、JavaScript 或 Python),并将它们合并为一个单一的有效 polyglot 文件。该工具支持三种不同的注入技术,以测试对静态分析的规避能力: ### 位置参数 * `base_file`:基础文件的路径(例如:原始 PDF)。 * `payload_file`:payload 文件的路径(例如:JavaScript)。 * `output_file`:生成的输出文件的路径。 ### 选项 * `-h`, `--help`:显示帮助信息并退出。 * `-o`, `--obfuscate`:通过对注入的代码进行混淆,隐藏 payload 在 PDF 结构中的存在。 * `-t`, `--type`:要使用的注入策略。有效选项:{stack,cavity,zipper,original}。original 不会修改脚本的结构,如果设置了 `-o` 标志,则只会应用混淆。 * `-v`, `--verbose`:启用详细的日志输出。 ### 使用示例 ``` python merge_pdf.py input.pdf payload.js result.pdf --type cavity --obfuscate -v ```
标签:DNS 反向解析, PDF处理, Python, 应用安全, 恶意代码分析, 搜索语句(dork), 文件多态生成, 无后门, 逆向工具, 配置文件