
VirusTotal용 오픈소스 Android 클라이언트. 70개 이상의 안티바이러스 엔진으로 파일, URL, 설치된 앱을 스캔합니다. 해시, 위협 분류, YARA 일치, 샌드박스 동작이 포함된 상세 보고서를 확인합니다. 추적이나 광고가 없습니다.
무료 오픈소스입니다. 자신의 VirusTotal API 키를 가져와 파일, 링크, 설치된 앱을 70개 이상의 엔진으로 스캔할 수 있으며, Material 3 인터페이스로 제작되었습니다. 계정 없음, 추적 없음, 광고 없음.
Veto는 VirusTotal의 Android 클라이언트입니다. 파일, 링크 또는 설치된 애플리케이션을 제출하여 실시간 분석 결과를 확인하세요. 애플리케이션은 단일 통합 평결부터 서비스에서 반환된 전체 필드 집합까지 명확한 보고서를 표시합니다.
이 프로젝트는 무료 오픈소스이며, 사용자 계정, 추적 시스템 또는 광고를 포함하지 않습니다. 사용자가 자신의 VirusTotal API 키를 제공하기 때문에 모든 스캔은 중간 제3자 서버를 거치지 않고 개인 계정에서 직접 실행됩니다.
![]() | ![]() | ![]() |
ScanManager는 모든 스캔 상태의 중앙 진실 공급원 역할을 합니다. 이는 앱이 포그라운드에서 활성 상태이든, 백그라운드에서 일시 중단되었든, 운영 체제에 의해 소멸되었든 관계없이 사용자 인터페이스가 동기화 상태를 유지하도록 보장합니다./analyses/{id} 엔드포인트를 폴링합니다. 속도 제한 응답이 발생하면 프로세스는 실패하지 않고 대기합니다. 결과가 채워질 때까지 보고서를 다시 가져오며, 시간 제한에 도달하면 구조화된 실패 상태를 반환합니다.ScanState가 Activity 소멸에도 생존하도록 ScanManager 내에 위치하는 반면, ScanService는 활성 작업 중 프로세스 수명 주기를 유지하고 진행 중 및 완료 알림을 관리합니다.attributes JSON은 사용자 정의 직렬화기를 통해 보존됩니다. 이를 통해 상세 보고서 보기가 시간이 지남에 따라 API 페이로드에 추가된 새로운 필드를 포함하여 반환된 모든 필드를 렌더링할 수 있습니다.└── app/src/main/java/com/quantum_prof/vtscansuite/
├── data/ # Models, remote API, and repository implementation
├── domain/ # Repository interface and business use cases
├── di/ # Hilt dependency injection modules
├── scan/ # ScanManager, ScanService, and system notifications
└── ui/ # UI components and presentation layers
├── intro/ # Splash screen and API key configuration
├── dashboard/ # Navigation hub: link, file, and app scanning modules
├── results/ # Quick and Detailed report visualizers
├── components/# Reusable UI elements and layouts
├── theme/ # Color, shapes, typography, and motion configurations
└── util/ # Haptic feedback, gestures, and deep linking utilities
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 키를 입력하세요. 키는 기기에 로컬로 저장됩니다. 무료 API 키는 일반적으로 분당 4회 조회로 제한됩니다.
이 애플리케이션은 사용자가 제공한 자격 증명을 사용하여 VirusTotal API와만 통신합니다. 업로드된 파일, 제출된 URL 및 동적 결과는 VirusTotal의 서버로 직접 전송됩니다. API 키는 기기에 로컬로 저장됩니다. 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 to 36 | JDK 17로 컴파일, minSdk 30, targetSdk 36 |