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, 云资产可视化, 字符串匹配, 恶意软件扫描, 无后门, 桌面应用, 逆向工具