volkthienpreecha/crackedpdfs

GitHub: volkthienpreecha/crackedpdfs

面向 PDF 隐藏提示词注入的可复现基准测试与检测器评估框架,提供大规模配对数据集及端到端实验流水线。

Stars: 0 | Forks: 0

# 破解的 PDF ## 针对 PDF 中隐藏提示词注入的受控基准测试 [![arXiv](https://img.shields.io/badge/arXiv-2607.19396-b31b1b.svg)](https://arxiv.org/abs/2607.19396) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.21735803.svg)](https://doi.org/10.5281/zenodo.21735803) [![Python 3.13](https://img.shields.io/badge/Python-3.13-3776AB.svg)](https://www.python.org/downloads/release/python-3137/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![论文](https://img.shields.io/badge/Paper-read-b31b1b.svg)](https://arxiv.org/abs/2607.19396) [![数据集](https://img.shields.io/badge/Dataset-Hugging_Face-ffd21e.svg)](https://huggingface.co/datasets/volkthienpreecha/crackedpdfs) [![代码](https://img.shields.io/badge/Code-browse-181717.svg)](https://github.com/volkthienpreecha/crackedpdfs) [![结果](https://img.shields.io/badge/Results-tables-2563eb.svg)](paper-v1/RESULTS.md) [![引用](https://img.shields.io/badge/Citation-BibTeX-8b5cf6.svg)](#citation) CrackedPDFs 是一个受控基准测试,用于在 pipeline 将文件扁平化为纯文本之前,测试 PDF 文档层的隐藏提示词注入。 | 语料库 | 基础文档 | 混合 F1 | 论文报告的配对结果 | | ---: | ---: | ---: | ---: | | **29,322 PDFs** | **4,983** | **0.960** | **95.9%** | 该语料库包含 9,774 个注入的 PDF 和 19,548 个良性原件或匹配的良性干扰项。在 2,919 个文档的留出测试集上,经过净化的混合检测器达到了 0.960 的 F1 分数、0.998 的 ROC-AUC 和 0.997 的 PR-AUC。 论文将 95.9% 描述为配对排名。冻结的评估产物在平衡的注入与匹配干扰项集合上,将其分类准确率记录为 0.958890,而其显式的成对排名字段为 1.000。[结果溯源说明](paper-v1/RESULTS.md#paired-result-provenance) 记录了这一区别,以便后续工作不会在不经意间更改指标定义。 良性源文档是使用 [PDFAutoGen](https://github.com/volkthienpreecha/PDFAutoGen) 生成的,这是一个确定性的良性文档生成器,包含十四个模板、种子布局变化和结构化内容库。 ## 本仓库包含的内容 | 路径 | 用途 | | --- | --- | | [`paper-v1/`](paper-v1/) | 论文表格、精确的指标产物、冻结的划分、可复现性元数据、环境捕获以及示例三元组元数据。 | | `tools/PDFautogenerator/` | 本实验栈使用的内置确定性良性 PDF 生成器。独立的生成器是 [PDFAutoGen](https://github.com/volkthienpreecha/PDFAutoGen)。 | | `src/backend/services/dataset-mode/` | 配对基准测试的构建与验证。 | | `src/backend/services/processing/layers/02-watermarking/` | PDF 注入机制与验证辅助工具。 | | `lightweight-detector/` | 特征提取、分组划分、基线、学习模型、审计与评估。 | | `scripts/run_crackedpdfs_experiment.ps1` | 当前的端到端实验运行器。 | 生成的 PDF、本地数据库、模型二进制文件和完整的特征表仍然被排除在 Git 之外。它们发布在 [Hugging Face 数据集](https://huggingface.co/datasets/volkthienpreecha/crackedpdfs) 中;`paper-v1/` 是紧凑且可审查的论文记录。 ## 基准测试设计 每个基准测试组都以一份良性基础文档开始,可能包含: 1. 良性原件; 2. 共享非标签溯源特征的匹配良性干扰项;以及 3. 通过 PDF 结构或渲染隐藏机器可见指令的注入对应物。 数据集划分按 `base_pdf_id` 分组。相关变体不能跨越训练、验证和测试的边界。 | 划分 | PDF 数量 | | --- | ---: | | 训练集 | 23,766 | | 验证集 | 2,637 | | 测试集 | 2,919 | | **总计** | **29,322** | 评估包括: - PDF 规则基线; - 对提取文本进行检测的 PromptGuard; - 仅限结构的逻辑回归和 XGBoost; - 仅限文本的 TF-IDF 捷径比较器; - 主力净化文本加结构混合检测器; - 标签置换检查; - 捷径和泄漏审计; - 配对的良性干扰项控制;以及 - 针对未知攻击族别的压力测试。 有关面向论文的表格和确切的产物键,请参见 [`paper-v1/RESULTS.md`](paper-v1/RESULTS.md)。 ## Linux 复现 要求: - Python 3.13; - Node.js 22 和 npm; - GNU Make;以及 - Git。 ``` git clone https://github.com/volkthienpreecha/crackedpdfs.git cd crackedpdfs make smoke ``` `make smoke` 会验证 5 月 25 日的源码快照,运行 Python 生成器和 TypeScript 测试,然后通过真实的基准测试 pipeline 生成一份良性 PDF 和一份注入的对应文件。 要从已发布的冻结特征重新生成论文的紧凑结果表: ``` make reproduce-results ``` 第二条命令会从不可变的 [Hugging Face 修订版本](paper-v1/reproducibility/download-manifest.json) 下载四个哈希固定的产物,验证每个 SHA-256 摘要,并写入 `reproduced-results/hard-setting-summary.csv`。它不会重新生成这 29,322 个 PDF。 ## 完整的发表级运行 ``` npm run experiment:publication ``` 这是一条开销很大的重新生成路径。它会创建全新的源 PDF 并重新运行基准测试。它不是用于检查已发表数据的预期快速路径。 对于论文评审,请从以下内容开始: - [`paper-v1/RESULTS.md`](paper-v1/RESULTS.md); - [`paper-v1/reproducibility/frozen-splits.json`](paper-v1/reproducibility/frozen-splits.json); - [`paper-v1/reproducibility/run-manifest.json`](paper-v1/reproducibility/run-manifest.json);以及 - [`paper-v1/metrics/metrics.json`](paper-v1/metrics/metrics.json)。 ## 数据集可用性 完整的公开数据集位于 [Hugging Face](https://huggingface.co/datasets/volkthienpreecha/crackedpdfs),并存档在 [Zenodo](https://doi.org/10.5281/zenodo.21735803)。它包含所有 29,322 个 PDF、行级元数据、冻结特征、标签、论文评估划分、指标和 SHA-256 校验和。大型二进制文件仍保留在 Git 之外,以确保仓库保持可克隆状态。 发布清单将快速复现命令固定到数据集修订版本 `02d7e0be03b09d6a29c7e4d388440bc1f5a4907b`。有关 schema、划分语义和局限性,请参见 [`paper-v1/DATASET.md`](paper-v1/DATASET.md)。 ## 引用 如果您使用了该基准测试、代码、数据集划分或论文结果,请引用该论文和数据集发布。这两个条目也可以在 [`CITATION.bib`](CITATION.bib) 中找到。 ``` @misc{thienpreecha2026crackedpdfs, title = {CrackedPDFs: A Controlled Benchmark for Hidden Prompt Injection in PDFs}, author = {Thienpreecha, Pukaphol and Subramanian, Karthik}, year = {2026}, eprint = {2607.19396}, archivePrefix = {arXiv}, primaryClass = {cs.AI}, doi = {10.48550/arXiv.2607.19396}, url = {https://arxiv.org/abs/2607.19396} } @dataset{thienpreecha2026crackedpdfs_dataset, title = {CrackedPDFs: Paper v1 Dataset and Reproducibility Artifacts}, author = {Thienpreecha, Pukaphol and Subramanian, Karthik}, publisher = {Zenodo}, year = {2026}, version = {1.0.0}, doi = {10.5281/zenodo.21735803}, url = {https://doi.org/10.5281/zenodo.21735803} } ``` 机器可读的引用元数据位于 [`CITATION.cff`](CITATION.cff)。 PDF 和 TeX 源文件列出了两位作者。在编写此 README 时,arXiv 摘要页面仅显示 Pukaphol Thienpreecha。上面的引用遵循了论文 PDF 的内容。 ## 贡献与行为准则 在提交更改之前,请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md)。参与受 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) 管理。 ## 许可证 本仓库的代码和原始文档可在 [MIT License](LICENSE) 下获取。打包的字体保留了它们自己的许可证文件,位于 `tools/PDFautogenerator/assets/fonts/` 下。
标签:AI安全, Apex, Chat Copilot, DLL 劫持, PDF处理, 大语言模型, 机器学习