VirusTotal 的开源 Android 客户端。扫描文件、URL 和已安装应用,使用 70 多个反病毒引擎。查看详细报告,包含哈希值、威胁分类、YARA 匹配和沙箱行为。无追踪或广告。
免费开源。自带VirusTotal API密钥,可扫描文件、链接和已安装应用,覆盖超过70个引擎,采用Material 3界面设计。无账户、无追踪、无广告。
Veto是VirusTotal的Android客户端。提交文件、链接或已安装应用以查看实时分析结果。应用显示清晰的报告,从单一统一判定到服务返回的完整字段集。
项目免费开源,不含用户账户、追踪系统或广告。由于用户提供自己的VirusTotal API密钥,所有扫描直接在其个人账户下运行,无需经过第三方中间服务器。
![]() | ![]() | ![]() |
ScanManager作为所有扫描状态的集中真相源。这确保用户界面无论应用是否在前台激活、在后台暂停或被操作系统销毁,都能保持同步。/analyses/{id}端点。如果遇到速率限制响应,则等待而非失败。持续重新获取报告直到结果填充,若达到超时限制则返回结构化失败状态。ScanState驻留在ScanManager中以在Activity销毁后存活,而ScanService在活动操作期间维护进程生命周期,并管理进行中和完成通知。attributes JSON。这使得详细报告视图能够渲染所有返回的字段,包括随着时间推移添加到API负载中的任何新字段。└── app/src/main/java/com/quantum_prof/vtscansuite/
├── data/ # 模型、远程API和仓库实现
├── domain/ # 仓库接口和业务用例
├── di/ # Hilt依赖注入模块
├── scan/ # ScanManager、ScanService和系统通知
└── ui/ # UI组件和表示层
├── intro/ # 启动画面和API密钥配置
├── dashboard/ # 导航中心:链接、文件和应用扫描模块
├── results/ # 快速和详细报告可视化器
├── components/# 可复用的UI元素和布局
├── theme/ # 颜色、形状、字体和动效配置
└── util/ # 触觉反馈、手势和深层链接工具
fastlane/metadata/android/en-US/。docs/store/svg/。docs/store/export.html导出为PNG格式。克隆仓库并使用命令行编译调试构建:
git clone https://github.com/ProfessorQuantumUniverse/VTScan.git
cd VTScan
./gradlew :app:assembleDebug
或者在Android Studio中打开根目录并选择运行配置。
首次启动时,在介绍设置界面输入您的VirusTotal API密钥。该密钥存储在本地设备上。免费API密钥通常每分钟限制四次查询。
该应用仅使用您提供的凭据与VirusTotal API通信。上传的文件、提交的URL和动态结果直接发送到VirusTotal的服务器。API密钥存储在您的本地设备上。Veto不收集分析数据且不包含广告SDK。
本项目根据GNU通用公共许可证v3.0条款许可。
更多详情请参阅仓库中的LICENSE文件。
![]() | ![]() |
| 层 | 技术 | 项目中的角色 |
|---|
| 语言 | Kotlin | 主要编程语言 |
| UI框架 | Jetpack Compose | 声明式UI结构 |
| 设计系统 | Material 3 | 视觉样式、动态系统着色和扩展图标 |
| 依赖注入 | Hilt | 依赖管理 |
| 网络 | Retrofit & OkHttp | 与VirusTotal API的HTTP通信 |
| 序列化 | kotlinx.serialization | 类型安全JSON解析和自定义属性保留 |
| 异步 | Kotlin协程 | 异步编程和后台处理 |
| 持久化 | Jetpack DataStore | 动态设置存储和已保存扫描报告 |
| 兼容性 | SDK 30至36 | 使用JDK 17编译,minSdk 30,targetSdk 36 |