Gaurav-x111/veilpdf
GitHub: Gaurav-x111/veilpdf
一款本地优先的 PDF 安全工具集,集成文本恢复、文档保护、隐藏内容取证和离线 AI 提取功能。
Stars: 0 | Forks: 0
# VeilPDF
# Full scan: detect protection, forensics, and summary
veilpdf recover # Fix broken copy-paste, extract clean text
veilpdf protect # Obfuscate, watermark, and encrypt your PDF
veilpdf forensics # Detect fake redaction, hidden text, fingerprints
veilpdf ai summarize # Summarize PDF via local LLM (Ollama)
veilpdf ai extract # Extract structured data (questions, tables, equations)
veilpdf ai forensics # AI forensics narrative
```
### 启动器选项
```
./veilpdf --help # Show usage and exit
./veilpdf --version # Show version and exit
./veilpdf --skip-deps ... # Skip env check (faster after first setup)
```
## 为什么选择 VeilPDF?
你是否曾从 PDF 中复制文本,粘贴后却发现全是一堆乱码?这就是**字体混淆** (font obfuscation) —— 损坏的 Unicode 映射欺骗了系统的复制操作,但视觉上却渲染得完美无缺。
现有处理此问题的工具都有所欠缺:
* **Acrobat Pro** 价格昂贵且软件臃肿。
* **云工具** 需要将私人文档上传到外部服务器。
* **基础 OCR** 会丢失文档的结构和格式。
**VeilPDF** 在本地且私密地解决了这个问题。它是开源、免费的,并且涵盖了完整的生命周期:
`检测` ➔ `恢复` ➔ `保护` ➔ `取证` ➔ `AI 分析`
## 核心功能
### `recover` — 修复损坏内容
* **自动检测:** 即时标记损坏的 `ToUnicode` 表和字体混淆。
* **字形分析:** 重构可读文本而不丢失布局结构。
* **智能回退:** 在处理扫描或完全扁平化的页面时自动切换到 OCR。
* **多格式导出:** 直接输出为 `.txt`、`.md` 或 `.json`。
### `protect` — 锁定你的文档
* **字体混淆层:** 使复制粘贴的文本返回乱码,同时保持视觉上的完美呈现。
* **隐形水印:** 注入加密签名的所有权标识符以追踪泄密。
* **诱饵文本层:** 插入隐藏文本,从而迷惑 AI 爬虫/提取器,同时对人类保持不可见。
* **强加密:** 标准的 AES-256 密码保护。
### `forensics` — 洞察隐藏内容
* **虚假涂黑检测:** 检测并提取隐藏在表面黑框下的文本。
* **字体指纹识别:** 识别用于生成 PDF 的软件和系统配置。
* **元数据取证:** 检查创建详细信息、修订历史和隐藏的作者标签。
* **结构化报告:** 将取证结果直接保存为结构化的 JSON。
### `ai` — AI 驱动的提取
* **本地处理:** 通过 Ollama 在本地总结文档(无需云服务,无需 API 密钥)。
* **智能结构提取:** 分离出问题、表格、数学方程式和引用。
* **RAG 就绪:** 以开发者友好的格式导出结构化数据。
* **AI 叙述:** 生成关于可疑 PDF 行为的自然语言摘要。
## 快速开始
VeilPDF 具有零配置的自动设置引导脚本。当你第一次运行 `veilpdf` 时,它会自动检测你的操作系统,并安装/配置任何缺失的依赖项(Rust/Cargo、uv、Zig、Tesseract OCR、Python 环境),并提示你是否还需要安装本地 AI (Ollama)。
### 安装
```
# Clone the repository
git clone https://github.com/Gaurav-x111/veilpdf
cd veilpdf
# 只需运行 launcher!它会自动检查、配置并安装所有依赖项。
./veilpdf
```
首次运行后,使用 `--skip-deps` 即可瞬间启动:
```
./veilpdf --skip-deps scan document.pdf
```
### 将 `veilpdf` 设为全局可执行
你可以让此工具在你的系统上任何地方都能使用:
* **选项 A:创建软链接(推荐)**
sudo ln -s "$(pwd)/veilpdf" /usr/local/bin/veilpdf
* **选项 B:在你的 shell 配置中添加别名**
echo 'alias veilpdf="'"$(pwd)"'/veilpdf"' >> ~/.zshrc # 或者 ~/.bashrc
source ~/.zshrc
* **选项 C:将该目录添加到你的系统 PATH 中**
export PATH="$PATH:$(pwd)"
### Windows 支持
VeilPDF 可以通过 **WSL** (Windows Subsystem for Linux) 或 **Git Bash** 在 Windows 上运行。自动依赖引导在这两种环境中均可运行。未来计划原生支持 PowerShell。
## 详细使用指南
### 系统扫描
```
# 执行全面的安全与结构扫描
veilpdf scan document.pdf
# 导出机器可读的扫描报告
veilpdf scan document.pdf --json
```
### 文本恢复
```
# 从损坏或混淆的 PDF 中提取可读文本
veilpdf recover broken.pdf
# 指定 format 输出
veilpdf recover broken.pdf --output md
veilpdf recover broken.pdf --output json
```
### 文档保护
```
# 添加默认 font 混淆与保护
veilpdf protect thesis.pdf
# 注入数字所有者水印
veilpdf protect thesis.pdf --watermark "Gaurav"
# 使用 AES-256 密码保护进行加密
veilpdf protect thesis.pdf --encrypt --password "mysecretpassword"
```
### 取证分析
```
# 分析 PDF 的隐藏内容和风险
veilpdf forensics suspicious.pdf
# 生成详细的 forensic 分析 JSON 报告
veilpdf forensics suspicious.pdf --report report.json
```
### 本地 AI (Ollama)
确保你已安装 [Ollama](https://ollama.com) 并下载了相应的模型:
```
ollama pull llama3.2
```
完全离线运行 AI 任务:
```
# 总结长篇 PDF 文档
veilpdf ai summarize paper.pdf
# 提取结构性信息,如 tables 和 equations
veilpdf ai extract paper.pdf
# 让 AI 用自然语言详细描述 forensic 异常
veilpdf ai forensics document.pdf
```
## 故障排除
### “无法从 PDF 中提取文本”
这通常意味着 PDF 文件路径不正确,或者该 PDF 没有可提取的文本:
- **找不到文件:** 确保路径正确。使用绝对路径(`/home/user/doc.pdf`)或相对路径(`doc.pdf`),而不是不存在的根路径(`/doc.pdf`)。
- **受密码保护的 PDF:** 先对其进行解密:`veilpdf protect --decrypt `(将在 v0.2 中推出)。
- **扫描/纯图像 PDF:** 如果安装了 Tesseract,VeilPDF 会自动回退到 OCR。安装它:`sudo apt install tesseract-ocr` (Linux) 或 `brew install tesseract` (macOS)。
### “无法连接到 Ollama”
确保 Ollama 正在运行:
```
ollama serve
```
### “缺少 OCR 依赖项”
安装 OCR 技术栈:
```
uv pip install pdf2image pytesseract
# 同时安装 Tesseract:https://github.com/tesseract-ocr/tesseract
```
## 系统架构
VeilPDF 采用了混合架构,旨在融合原生编译语言的速度与 Python 丰富的库生态系统:
```
┌─────────────────────────────────────────┐
│ Rust CLI │
│ (Orchestrator & CLI Parser) │
└────────────────────┬────────────────────┘
│
Subprocess
│
┌────────────────────▼────────────────────┐
│ Python Core │
│ (Text Extraction, OCR, AI & Parsing) │
└────────────────────┬────────────────────┘
│
Binary Call
│
┌────────────────────▼────────────────────┐
│ Zig Cryptography Layer │
│ (AES-256 & Raw Byte Watermarking) │
└─────────────────────────────────────────┘
```
### 组件技术栈
| 组件 | 技术 | 主要职责 |
| :--- | :--- | :--- |
| **CLI** | `Rust` | 参数解析、流程编排、错误边界 |
| **Core** | `Python` | PDF 解析(`pypdf`, `pdfminer`)、OCR(`tesseract`)、AI(`ollama`) |
| **Crypto** | `Zig` | 快速、零依赖的 AES-256 和字节级水印注入 |
## 项目路线图
- [x] **v0.1.0:** 核心 CLI 版本发布(恢复、保护、取证和本地 AI 集成)。
- [ ] **v0.2.0:** 防截屏层实现、批处理目录以及桌面 GUI 包装器。
- [ ] **v0.3.0:** 完整的企业取证套件、高级沙箱提取以及第三方插件 API。
## 贡献
欢迎贡献代码、提出问题和功能请求!请随时查看[问题页面](https://github.com/Gaurav-x111/veilpdf/issues)。
## 许可证与创建者
* **创建者:** [Gaurav-x111](https://github.com/Gaurav-x111) — 专为注重隐私的开源社区而构建。
* **许可证:** [MIT License](LICENSE)
标签:AI大模型, AI风险缓解, PDF处理工具, Python, Rust, Zig, 可视化界面, 数字取证, 文本提取, 无后门, 网络流量审计, 自动化脚本, 逆向工具