
Open-source Android client per VirusTotal. Scansiona file, URL e app installate con oltre 70 motori antivirus. Visualizza report dettagliati con hash, classificazioni delle minacce, corrispondenze YARA e comportamenti in sandbox. Nessun tracciamento o pubblicità.
Gratuito e open source. Porta la tua chiave API VirusTotal per scansionare file, link e applicazioni installate con oltre 70 motori, realizzato con un'interfaccia Material 3. Nessun account, nessun tracciamento, nessuna pubblicità.
Veto è un client Android per VirusTotal. Invia un file, un link o un'applicazione installata per visualizzare i risultati dell'analisi in tempo reale. L'applicazione mostra un report chiaro che spazia da un verdetto unificato all'insieme completo dei campi restituiti dal servizio.
Il progetto è gratuito e open source, senza account utente, sistemi di tracciamento o pubblicità. Poiché gli utenti forniscono la propria chiave API VirusTotal, tutte le scansioni vengono eseguite direttamente sotto il loro account personale senza passare attraverso server intermedi di terze parti.
![]() | ![]() | ![]() |
ScanManager con ambito applicativo funge da fonte centralizzata di verità per tutti gli stati di scansione. Ciò garantisce che l'interfaccia utente rimanga sincronizzata sia che l'app sia attiva in primo piano, sospesa in background o distrutta dal sistema operativo./analyses/{id} con un limite massimo di sei minuti di orologio a parete. Se viene riscontrata una risposta di limite di richieste, il processo attende invece di fallire. Il report viene recuperato nuovamente finché i risultati non vengono popolati, restituendo uno stato di errore strutturato se viene raggiunto il limite di tempo.ScanState risiede all'interno dello ScanManager per sopravvivere alla distruzione dell'Activity, lo ScanService mantiene il ciclo di vita del processo durante le operazioni attive e gestisce le notifiche in corso e di completamento.attributes grezzo viene conservato tramite un serializzatore personalizzato. Ciò consente alla vista del report dettagliato di visualizzare tutti i campi restituiti, inclusi eventuali nuovi campi aggiunti al payload API nel tempo.└── app/src/main/java/com/quantum_prof/vtscansuite/
├── data/ # Modelli, API remota e implementazione del repository
├── domain/ # Interfaccia del repository e casi d'uso aziendali
├── di/ # Moduli di iniezione delle dipendenze Hilt
├── scan/ # ScanManager, ScanService e notifiche di sistema
└── ui/ # Componenti UI e livelli di presentazione
├── intro/ # Schermata di avvio e configurazione della chiave API
├── dashboard/ # Hub di navigazione: moduli di scansione link, file e app
├── results/ # Visualizzatori di report rapidi e dettagliati
├── components/# Elementi UI e layout riutilizzabili
├── theme/ # Configurazioni di colori, forme, tipografia e movimento
└── util/ # Utility per feedback aptico, gesti e deep linking
fastlane/metadata/android/en-US/.docs/store/svg/.docs/store/export.html.Clona il repository e compila la build di debug utilizzando la riga di comando:
git clone https://github.com/ProfessorQuantumUniverse/VTScan.git
cd VTScan
./gradlew :app:assembleDebug
In alternativa, apri la directory principale in Android Studio e seleziona la configurazione di esecuzione.
Al primo avvio, inserisci la tua chiave API VirusTotal nella schermata di configurazione iniziale. La chiave viene archiviata localmente sul tuo dispositivo, crittografata con una chiave AES-256-GCM del Android Keystore, ed è esclusa dal backup cloud e dal trasferimento da dispositivo a dispositivo. Le chiavi API gratuite sono generalmente soggette a un limite di quattro ricerche al minuto.
L'applicazione comunica esclusivamente con l'API VirusTotal utilizzando le credenziali che fornisci. I file caricati, gli URL inviati e i risultati dinamici vengono inviati direttamente ai server di VirusTotal. La chiave API viene archiviata localmente sul tuo dispositivo, crittografata con una chiave AES-256-GCM del Android Keystore, ed è esclusa dal backup cloud e dal trasferimento da dispositivo a dispositivo, quindi non lascia mai il dispositivo. La registrazione HTTP è limitata alle build di debug e oscura l'intestazione della chiave. Veto non raccoglie dati analitici e non contiene SDK pubblicitari.
Questo progetto è concesso in licenza secondo i termini della GNU General Public License v3.0.
Per maggiori dettagli, consulta il file LICENSE in questo repository.
![]() | ![]() |
| Livello | Tecnologia | Ruolo nel Progetto |
|---|
| Linguaggio | Kotlin | Linguaggio di programmazione principale |
| Framework UI | Jetpack Compose | Struttura UI dichiarativa |
| Sistema di design | Material 3 | Stile visivo, colorazione dinamica di sistema e icone estese |
| Iniezione delle dipendenze | Hilt | Gestione delle dipendenze |
| Rete | Retrofit & OkHttp | Comunicazione HTTP con l'API VirusTotal |
| Serializzazione | kotlinx.serialization | Parsing JSON type-safe e conservazione degli attributi personalizzati |
| Asincronia | Kotlin Coroutines | Programmazione asincrona ed elaborazione in background |
| Persistenza | Jetpack DataStore | Archiviazione delle impostazioni dinamiche e dei report di scansione salvati |
| Compatibilità | SDK 30 fino a 36 | Compilato con JDK 17, minSdk 30, targetSdk 36 |