
Клиент с открытым исходным кодом для VirusTotal на Android. Сканируйте файлы, URL-адреса и установленные приложения с помощью более 70 антивирусных движков. Просматривайте подробные отчёты с хешами, классификациями угроз, совпадениями YARA и поведением в песочнице. Без отслеживания и рекламы.
Бесплатно и с открытым исходным кодом. Используйте собственный ключ VirusTotal API для проверки файлов, ссылок и установленных приложений более чем по 70 движкам — всё это с интерфейсом Material 3. Без аккаунтов, без отслеживания, без рекламы.
Veto — это Android-клиент для VirusTotal. Отправьте файл, ссылку или установленное приложение, чтобы просмотреть результаты анализа в реальном времени. Приложение отображает понятный отчёт — от единого сводного вердикта до полного набора полей, возвращаемых сервисом.
Проект бесплатен и имеет открытый исходный код, не содержит пользовательских аккаунтов, систем отслеживания или рекламы. Поскольку пользователи предоставляют собственный ключ VirusTotal API, все проверки выполняются напрямую под их личным аккаунтом, без промежуточных сторонних серверов.
![]() |
![]() |
![]() |
![]() |
![]() |
ScanManager в области видимости приложения служит централизованным источником истины для всех состояний проверки. Это гарантирует, что пользовательский интерфейс остаётся синхронизированным, независимо от того, активно ли приложение на переднем плане, приостановлено в фоне или уничтожено операционной системой./analyses/{id} с шестиминутным пределом по настенным часам. При получении ответа о превышении лимита запросов процесс ожидает, а не завершается с ошибкой. Отчёт повторно запрашивается до тех пор, пока результаты не будут заполнены, возвращая структурированное состояние ошибки при достижении лимита времени ожидания.ScanState находится внутри ScanManager, чтобы пережить уничтожение Activity, ScanService поддерживает жизненный цикл процесса во время активных операций и управляет текущими и завершающими уведомлениями.attributes сохраняется через пользовательский сериализатор. Это позволяет подробному представлению отчёта отображать все возвращаемые поля, включая любые новые поля, добавляемые в полезную нагрузку API с течением времени.| Слой | Технология | Роль в проекте |
|---|---|---|
| Язык | Kotlin | Основной язык программирования |
| UI-фреймворк | Jetpack Compose | Декларативная структура пользовательского интерфейса |
| Дизайн-система | Material 3 | Визуальный стиль, динамическая системная окраска и расширенные иконки |
| Внедрение зависимостей | Hilt | Управление зависимостями |
| Сеть | Retrofit & OkHttp | HTTP-взаимодействие с VirusTotal API |
| Сериализация | kotlinx.serialization | Типобезопасный разбор JSON и сохранение пользовательских атрибутов |
| Асинхронность | Kotlin Coroutines | Асинхронное программирование и фоновая обработка |
| Хранение данных | Jetpack DataStore | Хранение динамических настроек и сохранённых отчётов о проверках |
| Совместимость | SDK 30–36 | Сборка с JDK 17, minSdk 30, targetSdk 36 |
└── app/src/main/java/com/quantum_prof/vtscansuite/
├── data/ # Модели, удалённый API и реализация репозитория
├── domain/ # Интерфейс репозитория и бизнес-сценарии использования
├── di/ # Модули внедрения зависимостей Hilt
├── scan/ # ScanManager, ScanService и системные уведомления
└── ui/ # Компоненты пользовательского интерфейса и слои представления
├── intro/ # Экран приветствия и настройка ключа API
├── dashboard/ # Навигационный центр: модули проверки ссылок, файлов и приложений
├── results/ # Визуализаторы быстрых и подробных отчётов
├── components/# Переиспользуемые элементы и макеты пользовательского интерфейса
├── theme/ # Конфигурации цветов, фигур, типографики и анимации
└── util/ # Утилиты тактильной обратной связи, жестов и глубоких ссылок
fastlane/metadata/android/en-US/.docs/store/svg/.docs/store/export.html.Клонируйте репозиторий и соберите отладочную версию с помощью командной строки:
git clone https://github.com/ProfessorQuantumUniverse/VTScan.git
cd VTScan
./gradlew :app:assembleDebug
Либо откройте корневой каталог в Android Studio и выберите конфигурацию Run.