lewiswigmore/virus.xcheck
GitHub: lewiswigmore/virus.xcheck
一款用于批量验证哈希值并获取恶意软件下载链接的 Python 工具。
Stars: 62 | Forks: 8
```
██╗ ██╗██╗██████╗ ██╗ ██╗███████╗ ██╗ ██╗ ██████╗██╗ ██╗███████╗ ██████╗██╗ ██╗
██║ ██║██║██╔══██╗██║ ██║██╔════╝ ╚██╗██╔╝██╔════╝██║ ██║██╔════╝██╔════╝██║ ██╔╝
██║ ██║██║██████╔╝██║ ██║███████╗ ╚███╔╝ ██║ ███████║█████╗ ██║ █████╔╝
╚██╗ ██╔╝██║██╔══██╗██║ ██║╚════██║ ██╔██╗ ██║ ██╔══██║██╔══╝ ██║ ██╔═██╗
╚████╔╝ ██║██║ ██║╚██████╔╝███████║██╗██╔╝ ██╗╚██████╗██║ ██║███████╗╚██████╗██║ ██╗
╚═══╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═════╝╚═╝ ╚═╝
```
## 概述
Virus.xcheck 是一个 Python 工具,用于检查文件哈希值是否存在于 Virus Exchange 数据库中。由于 Virus Exchange 的存储方式,该工具仅支持 SHA-256 哈希值。然而,对于其他哈希类型,工具将返回 VirusTotal 数据。工具可以从 CSV 文件读取 SHA-256 哈希值,或从命令行接受单个哈希值,并将每个哈希值与 Virus Exchange 数据库进行验证。
## 功能
- 从 CSV 文件或命令行读取单个哈希值
- 使用 S3 存储桶回退机制检查每个哈希值与 Virus Exchange API
- 并行处理以高效处理较大文件
- 终端中彩色且格式精美的输出
- 以 JSON 或 CSV 格式输出结果
- 带多个选项的命令行界面
- 支持 .env 文件的 API 密钥管理
- 速率限制以防止 API 节流
- 带有可视化的交互式 HTML 报告
## 要求
- Python 3.8+
## 安装
### 从 PyPI 安装(推荐)
```
pip install virusxcheck
```
### HTML 报告(可选)
要生成交互式 HTML 报告,请使用 report 额外依赖安装:
```
pip install virusxcheck[report]
```
这会安装生成 HTML 报告所需的附加依赖项(plotly、pandas、jinja2)。
### 从源代码安装
```
git clone https://github.com/lewiswigmore/virus.xcheck.git
cd virus.xcheck
pip install -r requirements.txt
```
### API 密钥设置
1. 从 [Virus.Exchange](https://virus.exchange/) 获取 API 密钥
2. 在根目录创建 `.env` 文件并添加你的 API 密钥:
VIRUSXCHECK_API_KEY=your_api_key_here
或者,你可以使用 `--save-config` 选项交互式地设置密钥:
virusxcheck --save-config
## 快速开始
```
pip install virusxcheck
virusxcheck --save-config # Set up your API key
virusxcheck -s "sha256_hash_value" # Check a single hash
virusxcheck -f hashes.csv -o out.json --html report.html # Batch check with report
```
## 用法
执行以下命令从命令行运行脚本:
### 检查单个哈希值
```
virusxcheck -s "hash_value"
```
### 处理 CSV 文件中的多个哈希值
```
virusxcheck -f /path/to/your/hashes.csv
```
### 保存结果到文件
```
virusxcheck -f /path/to/hashes.csv -o /path/to/results.csv
virusxcheck -s "hash_value" -o /path/to/results.json
```
### 生成 HTML 报告
```
virusxcheck -f /path/to/hashes.csv --html report.html
```
### 禁用彩色输出
```
virusxcheck -s "hash_value" --no-color
```
## 测试示例
### 测试用哈希值
```
d00853e592bccd823027e7e685d88c5a1f76a5a36ec5b7073d49ee633b050cc8
3965811a37eded16030a1dd4ac57119ce774bed4fcd70a232011f8f86efbfd83
51919bdfd8bc0ebeec651efdd5d97dae7ad9532cb10f6efaa67c3dbc88ea7500
```
### 使用示例 CSV 进行测试
创建文件 `test_hashes.csv` 并填入上述哈希值,然后运行:
```
virusxcheck -f test_hashes.csv --html results/report.html -o results/output.csv
```
### 示例输出
运行该工具后,你会看到类似以下的输出:
```
VirusTotal API integration enabled
Processing: 100%|██████████████████████| 3/3 [00:00<00:00, 5.85it/s]
HTML report saved to results/report.html
Results saved to results/output.csv
```
终端将显示每个哈希值的详细信息,包括:
- 检测状态(找到/未找到)
- 文件元数据(大小、类型、首次出现时间)
- 已知文件名
- 样本关联标签
- VirusTotal 检测统计
- 下载和参考链接
## 命令行参数
- `-s, --single`:要检查的单个哈希字符串
- `-f, --file`:包含哈希值的 CSV 文件路径
- `-o, --output`:输出文件路径(CSV 或 JSON 格式)
- `--html`:生成带有交互式图表的 HTML 报告
- `--save-config`:交互式保存 API 密钥到 .env 文件
- `--no-color`:禁用彩色输出
## 输出格式
### 终端输出
工具会在终端中生成彩色输出:
- 红色:在数据库中找到的恶意文件
- 绿色:未找到的干净文件
- 黄色:警告和错误
- 显示文件信息、名称、标签和链接的元数据
### HTML 报告
HTML 报告包含:
- 显示检测率和统计信息的交互式图表
- 文件元数据和统计信息
- 恶意软件标签分类
- 来自 VirusTotal 的详细扫描结果
### JSON 输出
```
{
"dbd5e933fe023ee03953ed8a8997c58be05ba97c092b795647962cf111bcd540": {
"status": "Found in VX database",
"details": {
"md5": "d51c19925a2ae853d3b19a1259f86de5",
"size": 4042752,
"type": "unknown",
"names": [
"csrss.exe",
"app.exe"
],
"sha1": "332a18521f2905e233bbab094a021cee44ac750e",
"tags": [
"spreader",
"peexe",
"executable",
"windows"
],
"first_seen": "2025-03-30T17:36:55Z",
"download_link": "https://s3.us-east-1.wasabisys.com/vxugmwdb/dbd5e933fe023ee03953ed8a8997c58be05ba97c092b795647962cf111bcd540"
},
"virustotal_url": "https://www.virustotal.com/gui/file/dbd5e933fe023ee03953ed8a8997c58be05ba97c092b795647962cf111bcd540"
}
}
```
### CSV 输出
CSV 输出包含以下列:
- 哈希值
- VX 状态
- 文件类型
- 大小
- 首次出现时间
- 名称
- VX URL
- 下载链接
- VirusTotal URL
- VT 检测率
- VT 恶意数
- VT 可疑数
- VT 干净数
- VT 类型
- VT 首次出现时间
- VT 标签
## 更新日志
请查看 [CHANGELOG.md](CHANGELOG.md) 获取变更列表。
## 安全
有关安全问题,请参阅 [SECURITY.md](SECURITY.md)。
## 许可证
本项目根据 MIT 许可证授权——详情见 [LICENSE](LICENSE) 文件。
## 免责声明
本工具仅用于信息目的。请确保你有权访问并检查数据库中的哈希值,并始终遵守 Virus Exchange 和 VirusTotal API 的服务条款。
标签:API查询, BeEF, DAST, Python 3.8+, Virus Exchange, 下载URL, 二进制发布, 哈希查询, 威胁情报, 开发者工具, 开源工具, 恶意软件分析, 批量验证, 文件哈希, 爬虫, 版本发布, 病毒数据库, 网络安全, 许可证, 逆向工具, 隐私保护