
Cliente Android de código aberto para VirusTotal. Digitalize arquivos, URLs e aplicativos instalados em mais de 70 mecanismos antivírus. Veja relatórios detalhados com hashes, classificações de ameaças, correspondências YARA e comportamentos de sandbox. Sem rastreamento ou anúncios.
Gratuito e de código aberto. Traga sua própria chave de API do VirusTotal para analisar arquivos, links e aplicativos instalados em mais de 70 mecanismos, construído com uma interface Material 3. Sem contas, sem rastreamento, sem anúncios.
O Veto é um cliente Android para o VirusTotal. Envie um arquivo, um link ou um aplicativo instalado para visualizar os resultados da análise em tempo real. O aplicativo exibe um relatório claro que vai desde um único veredito unificado até o conjunto completo de campos retornados pelo serviço.
O projeto é gratuito e de código aberto, sem contas de usuário, sistemas de rastreamento ou publicidade. Como os usuários fornecem sua própria chave de API do VirusTotal, todas as análises são executadas diretamente sob sua conta pessoal, sem serem roteadas por servidores intermediários de terceiros.
![]() | ![]() | ![]() |
ScanManager com escopo de aplicativo serve como a fonte central de verdade para todos os estados de análise. Isso garante que a interface do usuário permaneça sincronizada, esteja o aplicativo ativo em primeiro plano, suspenso em segundo plano ou destruído pelo sistema operacional./analyses/{id} usando um limite de relógio de parede de seis minutos. Se uma resposta de limite de taxa for encontrada, o processo aguarda em vez de falhar. O relatório é buscado novamente até que os resultados sejam preenchidos, retornando um estado de falha estruturado se o limite de tempo for atingido.ScanState reside dentro do ScanManager para sobreviver à destruição da Activity, o ScanService mantém o ciclo de vida do processo durante operações ativas e gerencia notificações em andamento e de conclusão.attributes é retido por meio de um serializador personalizado. Isso permite que a visualização do relatório Detalhado renderize todos os campos retornados, incluindo quaisquer novos campos adicionados ao payload da API ao longo do tempo.└── app/src/main/java/com/quantum_prof/vtscansuite/
├── data/ # Modelos, API remota e implementação do repositório
├── domain/ # Interface do repositório e casos de uso de negócios
├── di/ # Módulos de injeção de dependência do Hilt
├── scan/ # ScanManager, ScanService e notificações do sistema
└── ui/ # Componentes de UI e camadas de apresentação
├── intro/ # Tela de abertura e configuração da chave de API
├── dashboard/ # Hub de navegação: módulos de análise de link, arquivo e aplicativo
├── results/ # Visualizadores de relatórios Rápido e Detalhado
├── components/# Elementos e layouts de UI reutilizáveis
├── theme/ # Configurações de cores, formas, tipografia e movimento
└── util/ # Utilitários de feedback tátil, gestos e deep linking
fastlane/metadata/android/en-US/.docs/store/svg/.docs/store/export.html.Clone o repositório e compile a versão de depuração usando a linha de comando:
git clone https://github.com/ProfessorQuantumUniverse/VTScan.git
cd VTScan
./gradlew :app:assembleDebug
Alternativamente, abra o diretório raiz no Android Studio e selecione a configuração de execução.
No primeiro lançamento, insira sua chave de API do VirusTotal na tela de configuração de introdução. A chave é armazenada localmente no seu dispositivo, criptografada com uma chave AES-256-GCM do Android Keystore, e excluída do backup na nuvem e da transferência entre dispositivos. Chaves de API gratuitas geralmente estão sujeitas a um limite de quatro consultas por minuto.
O aplicativo se comunica exclusivamente com a API do VirusTotal usando as credenciais que você fornece. Arquivos enviados, URLs submetidas e resultados dinâmicos são enviados diretamente aos servidores do VirusTotal. A chave de API é armazenada localmente no seu dispositivo, criptografada com uma chave AES-256-GCM do Android Keystore, e é excluída do backup na nuvem e da transferência entre dispositivos, portanto nunca sai do dispositivo. O registro de HTTP é limitado a versões de depuração e oculta o cabeçalho da chave. O Veto não coleta dados de análise e não contém SDKs de publicidade.
Este projeto está licenciado sob os termos da GNU General Public License v3.0.
Para mais detalhes, consulte o arquivo LICENSE neste repositório.
![]() | ![]() |
| Camada | Tecnologia | Papel no Projeto |
|---|
| Linguagem | Kotlin | Linguagem de programação principal |
| Framework de UI | Jetpack Compose | Estrutura de UI declarativa |
| Sistema de Design | Material 3 | Estilo visual, cores dinâmicas do sistema e ícones estendidos |
| Injeção de Dependência | Hilt | Gerenciamento de dependências |
| Rede | Retrofit & OkHttp | Comunicação HTTP com a API do VirusTotal |
| Serialização | kotlinx.serialization | Análise JSON type-safe e preservação de atributos personalizados |
| Assincronia | Kotlin Coroutines | Programação assíncrona e processamento em segundo plano |
| Persistência | Jetpack DataStore | Armazenamento de configurações dinâmicas e relatórios de análise salvos |
| Compatibilidade | SDK 30 a 36 | Compilado com JDK 17, minSdk 30, targetSdk 36 |