
VirusTotal用のオープンソースAndroidクライアント。ファイル、URL、インストール済みアプリを70以上のアンチウイルスエンジンでスキャン。ハッシュ、脅威分類、YARAマッチ、サンドボックス動作を含む詳細レポートを表示。トラッキングや広告はありません。
無料かつオープンソース。ご自身のVirusTotal APIキーを使用して、ファイル、リンク、インストール済みアプリを70以上のエンジンでスキャンできます。Material 3インターフェースで構築されています。アカウント不要、トラッキングなし、広告なし。
VetoはVirusTotalのAndroidクライアントです。ファイル、リンク、またはインストール済みアプリを送信して、リアルタイムの分析結果を表示します。このアプリは、単一の統合判定からサービスが返す全フィールドの完全なセットに至るまで、明確なレポートを表示します。
このプロジェクトは無料かつオープンソースであり、ユーザーアカウント、トラッキングシステム、広告は一切含まれていません。ユーザーが自身のVirusTotal APIキーを提供するため、すべてのスキャンは中間のサードパーティサーバーを経由せず、個人アカウントの下で直接実行されます。
![]() | ![]() | ![]() |
ScanManagerは、すべてのスキャン状態の一元管理ソースとして機能します。これにより、アプリがフォアグラウンドでアクティブな場合、バックグラウンドで一時停止されている場合、またはオペレーティングシステムによって破棄された場合でも、ユーザーインターフェースが同期された状態を維持します。/analyses/{id}エンドポイントを6分間のウォールクロック上限でポーリングします。レート制限応答が発生した場合は、失敗するのではなく待機します。結果が入力されるまでレポートを再取得し、タイムアウト制限に達した場合は構造化された失敗状態を返します。ScanStateはActivityの破棄後も存続するためにScanManager内に存在しますが、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でルートディレクトリを開き、Run構成を選択します。
初回起動時に、イントロダクションのセットアップ画面でVirusTotal APIキーを入力します。キーはデバイス上にローカルに保存され、Android KeystoreのAES-256-GCMキーで暗号化され、クラウドバックアップおよびデバイス間転送から除外されます。無料のAPIキーは通常、1分あたり4回のルックアップに制限されています。
このアプリは、提供された認証情報を使用してVirusTotal APIとのみ通信します。アップロードされたファイル、送信されたURL、動的な結果は、VirusTotalのサーバーに直接送信されます。APIキーはデバイス上にローカルに保存され、Android KeystoreのAES-256-GCMキーで暗号化され、クラウドバックアップおよびデバイス間転送から除外されるため、デバイスから出ることはありません。HTTPロギングはデバッグビルドに限定され、キーヘッダーは編集されます。Vetoは分析データを収集せず、広告SDKも含まれていません。
このプロジェクトはGNU General Public License v3.0の条件の下でライセンスされています。
詳細については、このリポジトリのLICENSEファイルを参照してください。
![]() | ![]() |
| レイヤー | 技術 | プロジェクトでの役割 |
|---|
| 言語 | Kotlin | 主要プログラミング言語 |
| UIフレームワーク | Jetpack Compose | 宣言的UI構造 |
| デザインシステム | Material 3 | ビジュアルスタイリング、動的システムカラーリング、拡張アイコン |
| 依存性注入 | Hilt | 依存関係管理 |
| ネットワーキング | Retrofit & OkHttp | VirusTotal APIとのHTTP通信 |
| シリアライゼーション | kotlinx.serialization | 型安全なJSONパースとカスタム属性の保持 |
| 非同期処理 | Kotlin Coroutines | 非同期プログラミングとバックグラウンド処理 |
| 永続化 | Jetpack DataStore | 動的設定の保存とスキャンレポートの保存 |
| 互換性 | SDK 30〜36 | JDK 17でコンパイル、minSdk 30、targetSdk 36 |