VijayShanbhag/VT-Desktop-Scanner
GitHub: VijayShanbhag/VT-Desktop-Scanner
基于 Python 的桌面恶意软件扫描器,结合 VirusTotal 云端多引擎检测与本地 YARA 规则匹配,支持批量扫描和报告导出。
Stars: 0 | Forks: 0
# VT-Desktop-Scanner
VT Desktop Scanner 是一款 Python 桌面应用程序,它使用 VirusTotal API 和本地 YARA 规则扫描文件以查找潜在的恶意软件。它支持扫描单个文件或整个文件夹,使用加密技术安全地存储用户的 VirusTotal API 密钥,并允许导出扫描结果以供日后分析。开发此项目旨在探索恶意软件分析概念、API 集成、安全凭证处理以及使用 Python 进行桌面应用程序开发。
## 功能
• 扫描单个文件或整个文件夹。
• 计算扫描文件的 SHA-256 哈希值。
• 通过 VirusTotal API 检查文件。
• 使用 YARA 规则执行本地恶意软件检测。
• 使用 Fernet 加密安全地加密和存储 VirusTotal API 密钥。
• 缓存之前的扫描结果以减少不必要的 API 请求。
• 自动处理 VirusTotal API 速率限制。
• 以 JSON 和 CSV 格式导出扫描结果。
• 查看来自多个防病毒引擎的详细检测结果。
• 使用 Tkinter 构建的 Windows 桌面界面。
## 使用的技术
• Python
• Tkinter
• VirusTotal API
• YARA
• Cryptography (Fernet)
• Requests
• Concurrent Futures
• JSON
• CSV
## 安装说明
克隆代码库:
git clone https://github.com/yourusername/VT-Desktop-Scanner.git
cd VT-Desktop-Scanner
安装所需的软件包:
pip install -r requirements.txt
启动应用程序:
python vt_v1.py
## VirusTotal API 设置
此应用程序需要个人的 VirusTotal API 密钥。
1. 创建一个免费的 VirusTotal 账户。
2. 生成您的个人 API 密钥。
3. 启动应用程序。
4. 出现提示时输入您的 API 密钥。
5. 如果本地不存在加密密钥 (fernet.key),应用程序会自动生成一个。
6. 您的 API 密钥将被加密并本地存储在 config.enc 中。
## VirusTotal API 速率限制
此应用程序在使用免费 API 时,在两次 VirusTotal API 请求之间包含 15 秒的延迟。
免费的 VirusTotal API 强制执行请求速率限制以确保公平使用。引入延迟有助于防止超出这些限制,并降低在扫描文件或文件夹期间出现速率限制错误的可能性。
如果您使用的是 VirusTotal Premium API 密钥,可以根据您可用的 API 配额调整或取消此延迟。
## 工作原理
1. 选择要扫描的文件或文件夹。
2. 应用程序计算每个文件的 SHA-256 哈希值。
3. 如果存在缓存结果,则会立即显示。
4. 否则,将针对 VirusTotal 检查文件哈希。
5. 执行本地 YARA 规则以识别已知的恶意软件模式。
6. 来自这两个来源的结果将显示在应用程序中。
7. 报告可以导出为 JSON 或 CSV 文件。
## 未来改进
• 生成 PDF 报告
• 文件隔离功能
• 数字签名验证
• 拖拽文件扫描
• 扫描历史仪表板
• 文件熵分析
• 额外的 YARA 规则
• 改进的多线程扫描
• MITRE ATT&CK 技术映射
## 免责声明
本项目仅供教育目的和安全研究使用。在做出安全决策之前,应结合其他安全工具审查检测结果。
标签:Ask搜索, Python, VirusTotal, YARA, 云资产可视化, 字符串匹配, 恶意软件扫描, 无后门, 桌面应用, 逆向工具