prithakdas/pdf-malware-analyzer
GitHub: prithakdas/pdf-malware-analyzer
一款基于Python的PDF恶意软件静态分析工具,通过检测可疑关键字、嵌入JavaScript、混淆模式和IOC指标对PDF文件进行风险分级,帮助安全人员快速识别恶意PDF。
Stars: 1 | Forks: 0
# 📄 PDF 恶意软件分析工具包
一个基于 Python 的静态分析工具,用于扫描 PDF 文件中的恶意内容。
自动扫描文件夹中的所有 PDF 并生成详细的风险报告。
## 🚀 功能
- 🔍 **关键字检测** — `/OpenAction`、`/Launch`、`/EmbeddedFile`、`/XFA`、`/AA`
- 📊 **元数据提取** — 检测可疑的创建工具(msfvenom、metasploit 等)
- 🌐 **IOC 检测** — 提取并过滤 URL 和 IP 地址
- 🧠 **JavaScript 分析** — 检测嵌入的 JS 和混淆模式
- 🗜️ **流解压缩** — 扫描 FlateDecode 压缩流内部以查找隐藏的 payload
- ⚠️ **风险评分** — 低 / 中 / 高,附带详细原因
- 📄 **报告生成** — 易读的控制台报告 + 可选的文件保存
- 📁 **批量扫描** — 自动扫描文件夹中的所有 PDF
## 🛠️ 技术栈
- Python 3
- PyPDF2
- Regex
- Zlib(流解压缩)
## 📁 项目结构
```
pdf-malware-analyzer/
│
├── main.py
├── requirements.txt
├── README.md
├── clean.pdf
├── malicious.pdf
│
└── modules/
├── loader.py
├── metadata.py
├── scanner.py
├── ioc_detector.py
├── js_analyzer.py
├── risk_engine.py
└── report_generator.py
```
## ▶️ 如何运行
1. 克隆仓库:
```
git clone https://github.com/prithakdas/pdf-malware-analyzer.git
cd pdf-malware-analyzer
```
2. 安装依赖项:
```
pip install -r requirements.txt
```
3. 运行工具:
```
# 扫描当前文件夹中的所有 PDF
python main.py
# 扫描特定文件夹中的所有 PDF
python main.py "C:\Users\Prithak\Documents\pdfs"
```
## 📊 示例输出
```
[+] Found 2 PDF(s) in: C:\Users\Prithak\Desktop\PDF Malware Analyzer
[+] Starting analysis...
[1/2] clean.pdf
==================================================
PDF MALWARE ANALYSIS REPORT
==================================================
[Timestamp] 2026-04-29 13:49:16
[File] clean.pdf
[Risk Level] LOW
[Risk Score] 0
[+] Summary:
✅ This PDF appears clean. No major threats detected.
[2/2] malicious.pdf
==================================================
PDF MALWARE ANALYSIS REPORT
==================================================
[Timestamp] 2026-04-29 13:49:16
[File] malicious.pdf
[Risk Level] HIGH
[Risk Score] 14
[+] Risk Reasons:
- Suspicious keywords found: /OpenAction
- JavaScript detected: /JavaScript, /JS
- Obfuscation patterns found: eval(), unescape(), base64, String.fromCharCode
- JS + Obfuscation combo detected — high likelihood of malicious payload
[+] Summary:
⚠️ This PDF is highly suspicious and likely contains malicious content.
[+] All done. 2 PDF(s) scanned.
[?] Save all reports to file? (y/n): y
[+] All reports saved: report_all_20260429_134916.txt
```
## ⚠️ 风险评分
| 指标 | 分数 |
|---|---|
| 可疑关键字 | +3 |
| 检测到 JavaScript | +3 |
| 混淆模式 | +5 |
| 发现 URL | +1 |
| 发现 IP 地址 | +2 |
| JS + 混淆组合 | +3 附加分 |
| URL + IP 同时出现 | +2 附加分 |
| 分数 | 风险等级 |
|---|---|
| 0 – 4 | 🟢 低 |
| 5 – 9 | 🟡 中 |
| 10+ | 🔴 高 |
## ⚠️ 免责声明
本工具仅出于教育和研究目的开发。
它不保证能完全检测出恶意软件。
在生产环境中,请始终使用专业的安全工具。
## 👨💻 作者
Prithak Das
标签:DNS 反向解析, Go语言工具, IOC提取, IP 地址批量处理, PDF恶意软件分析, PyPDF2, Python安全工具, Zlib解压, 云安全监控, 元数据提取, 域名收集, 威胁情报, 开发者工具, 恶意PDF检测, 无服务器架构, 混淆检测, 网络安全, 网络指标, 进程保护, 隐私保护, 静态分析, 风险评分