Voltar às atualizações
New releaseSep 7, 2026

Veto v2.3

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.

Compartilhar
Veto, o cliente VirusTotal de código aberto

Veto

Um cliente VirusTotal de código aberto para Android

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.

Platform Kotlin Jetpack Compose minSdk

O que é o Veto?

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.


Capturas de Tela

Tela do PainelTela de Resultados LimposTela de Relatório Detalhado
Tela de ConfiguraçõesTela de Análises Salvas

Conjunto de Recursos

  • Capacidade de Análise: Analise aplicativos instalados, arquivos locais ou URLs de destino.
  • Agregação Multi-Mecanismo: Combina diagnósticos de mais de 70 mecanismos antivírus.
  • Modos de Relatório Duplos: Modo rápido para resumos de verificação rápidos e modo Detalhado para inspeção aprofundada.
  • Explicações Contextuais: Texto explicativo está disponível para cada seção, com uma configuração para ocultar explicações, se desejado.
  • Relatórios de Alta Fidelidade: Exibe hashes de arquivos, classificações de ameaças, histórico, votos da comunidade, comportamentos de sandbox, correspondências YARA, detalhes internos de aplicativos Android e todos os campos adicionais do payload da API.
  • Execução em Segundo Plano: Acompanhamento do progresso de upload e análise em tempo real que persiste dentro de um serviço em segundo plano.
  • Acesso Offline: Salva relatórios localmente para permitir revisão posterior, mesmo sem conexão com a internet.
  • Avisos de Limite de Taxa: Exibe notificações claras quando a chave de API local atinge seu limite de taxa.
  • Temas: Suporte completo ao Material 3 com cores dinâmicas do sistema, suportando temas claro e escuro.

Detalhes da Implementação da Arquitetura Central

  • Sincronização de Estado: O 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.
  • Polling Resiliente: O aplicativo consulta o endpoint /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.
  • Ciclo de Vida do Processo: Enquanto o 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.
  • Análise de Fidelidade Total: Campos comuns são capturados usando modelos tipados, enquanto o JSON completo e bruto de 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.

Pilha de Tecnologias

CamadaTecnologiaPapel no Projeto
LinguagemKotlinLinguagem de programação principal
Framework de UIJetpack ComposeEstrutura de UI declarativa
Sistema de DesignMaterial 3Estilo visual, cores dinâmicas do sistema e ícones estendidos
Injeção de DependênciaHiltGerenciamento de dependências
RedeRetrofit & OkHttpComunicação HTTP com a API do VirusTotal
Serializaçãokotlinx.serializationAnálise JSON type-safe e preservação de atributos personalizados
AssincroniaKotlin CoroutinesProgramação assíncrona e processamento em segundo plano
PersistênciaJetpack DataStoreArmazenamento de configurações dinâmicas e relatórios de análise salvos
CompatibilidadeSDK 30 a 36Compilado com JDK 17, minSdk 30, targetSdk 36

Estrutura do Projeto

└── 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
  • Os recursos e textos da listagem na loja estão disponíveis em fastlane/metadata/android/en-US/.
  • Os SVGs editáveis dos mockups estão localizados em docs/store/svg/.
  • Os mockups podem ser exportados para o formato PNG usando docs/store/export.html.

Começando

Pré-requisitos

Compilar e Executar

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.


Política de Privacidade

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.


Licença

Este projeto está licenciado sob os termos da GNU General Public License v3.0.

Termos Principais da GPLv3:

  • Uso comercial: Permitido
  • Modificação: Permitida
  • Distribuição: Permitida
  • Divulgação do código-fonte: Exigida na distribuição
  • Mesma licença: O código modificado também deve usar a GPLv3
  • Responsabilidade e Garantia: Nenhuma fornecida pelos autores

Para mais detalhes, consulte o arquivo LICENSE neste repositório.


Desenvolvido com a API do VirusTotal. Não afiliado ou endossado pelo VirusTotal.

Categorias