该 Python 脚本可递归扫描文件夹,并将可执行文件、脚本、文档及其他相关文件提交至 Hybrid Analysis(Falcon Sandbox)进行自动化恶意软件分析。
~/.hybrid_analysis_submitter/)中存储缓存,避免污染扫描文件夹.env 文件中读取 API 密钥,确保安全克隆或下载 本脚本到本地机器。
安装所需包:
pip install requests python-dotenv
.env 文件,写入你的 API 密钥:HYBRID_API_KEY=your_api_key_here
你可以通过注册 Hybrid Analysis 获取 API 密钥。
从命令行运行脚本,指定要扫描的文件夹:
python submit_to_hybrid.py /path/to/folder
使用默认设置扫描文件夹:
python submit_to_hybrid.py C:\suspicious_files
扫描文件夹,但将大小上限提高到 200 MB,并使用不同的环境(例如 Android):
python submit_to_hybrid.py /home/user/samples --max-file-size 200 --environment-id 300
使用自定义缓存文件名:
python submit_to_hybrid.py ./malware --cache-file my_cache.json
Scanning folder: C:\suspicious_files
Submitting: C:\suspicious_files\malware.exe (2.34 MB)
-> Success! Job ID: 5f8a9c2d3e4f5a6b7c8d9e0f
Submitting: C:\suspicious_files\document.pdf (0.12 MB)
-> Success! Job ID: 6g9b0c1d2e3f4a5b6c7d8e9f
Skipping already submitted: C:\suspicious_files\malware.exe
Skipping symlink: C:\suspicious_files\link_to_malware.exe
Finished.
Files found: 42
Files submitted: 35
Files skipped: 6
Files failed: 1
.exe, .scr, .pif, .dll, .com, .cpl.msi.bat, .cmd, .ps1, .psd1, .psm1, .js, .vbs, .vbe, .wsf, , 官方支持的所有文件类型列表,请参阅 Hybrid Analysis FAQ。
os.walk() 遍历所有子文件夹。--max-file-size 的跳过)、以及文件是否已提交过(SHA‑256 缓存)。https://hybrid-analysis.com/api/v2/submit/file 端点。~/.hybrid_analysis_submitter/ 内的 JSON 缓存文件中,避免在后续运行中重复提交。缓存保存时已排序,便于人工阅读。429 响应,并在出现 3 次此类错误后停止,避免无限重试。.env 文件读取 – 请勿硬编码。--max-file-size 的文件跳过。ALLOWED_EXTENSIONS 中的文件。~/.hybrid_analysis_submitter/)中。本脚本按“原样”提供,仅用于教育和安全分析目的。请负责任地使用,并遵守 Hybrid Analysis 服务条款。
向第三方沙箱提交文件可能会暴露潜在的敏感内容。请确保在上传前拥有分享这些文件的权利。
| 参数 | 描述 |
|---|
folder_path | 必填 – 要扫描的文件夹路径(递归) |
--max-file-size | 文件大小上限,单位为 MB(默认:250) |
--environment-id | 分析环境 ID(默认:120 = Windows 7 64 位) |
--cache-file | 缓存文件名(默认:submitted_cache.json)。文件存储在 ~/.hybrid_analysis_submitter/ 中 |
.hta.sct.lnk, .chm.doc, .docx, .ppt, .pps, .pptx, .ppsx, .xls, .xlsx, .rtf, .pub.pdf, .eml, .msg.jar, .py, .pl.apk(Android),.elf(Linux).svg| 问题 | 可能的解决方案 |
|---|
ERROR: HYBRID_API_KEY not found | 在与脚本相同的目录中创建 .env 文件,内容为 HYBRID_API_KEY=your_key_here。 |
'folder_path' is not a valid directory | 提供正确的现有文件夹路径。 |
| 读取文件时权限被拒绝 | 以适当的读取权限运行脚本。 |
| 频繁出现 429 错误 | 降低提交速率(增大脚本中的 time.sleep(2))或升级 API 计划。 |
| 文件被意外跳过 | 检查扩展名是否在 ALLOWED_EXTENSIONS 中。你可以通过编辑脚本添加更多扩展名。 |
| 未跳过重复提交 | 缓存文件可能丢失或损坏。删除 ~/.hybrid_analysis_submitter/submitted_cache.json 以重新开始,或使用 --cache-file 参数指定不同的缓存文件名。 |
| 扫描根目录外的文件被跳过 | 这是出于安全考虑的设计。确保所有目标文件都在指定的文件夹内。 |