Analiza statică a pachetelor Android prin APK Info Viewer
APK Info Viewer este o utilitate de analiză statică ce rulează direct în browserul web al utilizatorului, concepută pentru a inspecta metadatele și structura internă a unui fișier de tip pachet de aplicație Android (APK) înainte de instalarea efectivă a acestuia. Instrumentul extrage și afișează detalii tehnice esențiale, permițând utilizatorilor să verifice caracteristicile declarate ale unui pachet și să le compare cu versiunile oficiale furnizate de dezvoltatori, fără a fi necesară executarea sau instalarea aplicației pe un dispozitiv fizic sau într-un emulator.
Procesul de analiză este complet local. Toate operațiunile de citire a fișierului, calculare a amprentelor criptografice și decodificare a structurii interne sunt realizate prin intermediul unui Worker local în browserul utilizatorului. Această abordare garantează că niciun fișier și nicio informație extrasă nu sunt încărcate pe servere externe, asigurând confidențialitatea deplină a datelor analizate.
Specificații de intrare și gestionarea erorilor
Instrumentul este proiectat să proceseze un singur fișier APK per sesiune, aplicând reguli stricte de validare a formatului și a dimensiunii:
- Format acceptat: Doar fișiere cu extensia
.apk. - Limita de dimensiune: Până la 500 MB. Dacă un fișier depășește această limită, procesarea este oprită, fiind afișat mesajul de eroare:
"Acest fișier depășește 500 MB — mai mare decât poate inspecta în siguranță o filă de browser.". - Cantitate: Un singur fișier o dată. În cazul în care utilizatorul introduce mai multe fișiere simultan, utilitarul va analiza exclusiv primul fișier detectat, afișând nota:
"Un singur fișier o dată — se inspectează primul.".
Dacă fișierul introdus nu respectă structura standard a unui pachet Android sau prezintă defecte de integritate, sistemul returnează erori specifice:
- Formate de publicare sau pachete divizate: Fișierele de tip Android App Bundle sunt respinse cu mesajul
"Acesta este un Android App Bundle (.aab) — un format de publicare, nu un APK instalabil. Inspectează APK-ul compilat în schimb.". Pachetele divizate de tip XAPK sau APKM sunt respinse cu eroarea:"Acesta este un pachet divizat XAPK — un container cu mai multe APK-uri. Extrage APK-ul de bază și inspectează acel fișier în schimb.". - Fișiere non-APK: Dacă pachetul nu conține fișierul de configurare obligatoriu, se afișează:
"Acesta nu pare a fi un APK: nu s-a găsit niciun fișier AndroidManifest.xml citibil în interior.". - Fișiere corupte sau erori de citire: Un pachet incomplet sau deteriorat va declanșa mesajul
"Pachetul pare deteriorat sau trunchiat, așa că conținutul său nu a putut fi citit.". Problemele generale de acces la fișier generează eroarea"Fișierul nu a putut fi citit. Alege-l din nou.", în timp ce alte erori neprevăzute de analiză sunt semnalate prin"Inspecția a eșuat. Încearcă alt fișier.".
Structura raportului de analiză
Interfața utilitarului ghidează utilizatorul prin stări succesive, de la stadiul inițial indicat prin Pregătit. Plasează un APK pentru a-l inspecta.. În timpul procesării, sunt afișate mesaje de progres precum Se citește ‹name›…, Se calculează amprentele fișierului — ‹percent›% și Se analizează pachetul…. La finalizarea analizei, interfața indică Raport pregătit..
Raportul generat este structurat în șapte secțiuni tehnice distincte:
Cerințe (Cerințe)
Această secțiune definește compatibilitatea pachetului cu sistemul de operare Android:
- Android minim (
lMinSdk): Versiunea minimă de sistem necesară pentru rulare, afișată sub formaAndroid ‹version› (API ‹level›)sau directAPI ‹level›. - Android țintă (
lTargetSdk): Versiunea de API pentru care a fost optimizată aplicația, utilizând aceleași șabloane de afișare. - SDK maxim (
lMaxSdk): Dacă este definit în manifest, indică limita superioară de compatibilitate sub formaSDK maxim ‹n›.
Permisiuni (Permisiuni)
Afișează lista completă de permisiuni solicitate de aplicație în AndroidManifest.xml. Pentru a facilita auditul de securitate, permisiunile clasificate de sistemul de operare ca având acces la date private sensibile sunt prioritizate în partea de sus a listei și sunt marcate vizual cu o insignă specifică: Periculos.
Componente (Componente)
Secțiunea listează punctele de intrare și elementele structurale ale aplicației, limitate la maximum 100 de înregistrări vizibile per categorie. Dacă această limită este depășită, se adaugă eticheta +încă ‹count›. Componentele sunt grupate astfel:
- Activități (
Activități): Ecranele interfeței de utilizator, marcate cu etichetaexportatdacă pot fi lansate de alte aplicații. - Servicii (
Servicii): Componentele de fundal, cu marcajulexportatunde este cazul. - Receptoare (
Receptoare): Componentele care reacționează la mesaje de sistem, cu marcajulexportatunde este cazul. - Furnizori (
Furnizori): Componentele de partajare a datelor, afișând autoritatea furnizorului, etichetaexportatsau valoareaNiciunul.
Cod nativ (Cod nativ)
Identifică tipurile de procesoare (Application Binary Interfaces - ABIs) pentru care aplicația conține biblioteci compilate, raportând tipurile de ABI detectate și numărul de biblioteci native incluse.
Resurse (Resurse)
Prezintă inventarul cantitativ al elementelor non-cod din pachet:
- Densități ecran (
Densități ecran): Densitățile de afișare acceptate. - Fișiere de resurse (
Fișiere de resurse): Numărul de resurse XML și grafice. - Fișiere de active (
Fișiere de active): Fișierele brute incluse în directorul/assets. - Fișiere de cod (.dex) (
Fișiere de cod (.dex)): Numărul de fișiere executabile Dalvik Executable. - Fișiere în pachet (
Fișiere în pachet): Numărul total de fișiere conținute în arhiva APK.
Semnături (Semnături)
Extrage metadatele certificatelor X.509 din blocurile de semnătură v1 (PKCS#7) și APK Signing Block (v2, v3, v3.1). Pentru fiecare semnatar detectat (Semnatar ‹n›), sunt extrase următoarele câmpuri:
- Subiect (
Subiect) - Emis de (
Emis de) - Număr de serie (
Număr de serie) - Valabil de la / Valabil până la (
Valabil de la/Valabil până la) - Algoritm de semnătură / Algoritm de cheie (
Algoritm de semnătură/Algoritm de cheie) - Amprentele digitale ale certificatului: MD5, SHA-1 și SHA-256.
Dacă pachetul nu conține date de certificare valide, se afișează mesajul: "Nu s-a găsit niciun bloc de semnătură recunoscut — pachetul poate fi nesemnat sau reîmpachetat.". Instrumentul doar extrage și afișează aceste metadate; el nu realizează o verificare criptografică a integrității semnăturilor, nu validează lanțul de încredere al certificatelor și nu confirmă identitatea reală a editorului.
Amprente fișier (Amprente fișier)
Afișează hash-urile criptografice globale ale fișierului APK analizat, calculate local în timpul citirii: MD5, SHA-1 și SHA-256. Aceste valori permit compararea directă cu hash-urile oficiale publicate de dezvoltatori pentru a confirma că fișierul nu a fost modificat.
După finalizarea analizei, utilizatorul poate folosi butonul Descarcă raportul (care confirmă acțiunea prin mesajul Raport descărcat.) sau poate curăța interfața folosind butonul Șterge (stare confirmată prin Șters.).
Întrebări frecvente
Ce pot afla dintr-un APK fără să îl instalez?
Destul de multe: numele de pachet și versiunea aplicației, versiunile Android de care are nevoie, fiecare permisiune pe care o cere, ecranele și componentele de fundal pe care le declară, tipurile de procesoare pentru care include cod nativ și certificatele cu care a fost semnat.
Poate această unealtă să-mi spună dacă un APK este malware?
Nu — și fii sceptic față de orice unealtă care promite un verdict dintr-o scanare rapidă. Ce obții aici sunt faptele: permisiuni, componente, semnatari și amprente. Compară-le cu ceea ce publică dezvoltatorul și tratează permisiunile neașteptate sau un semnatar diferit față de lansarea oficială drept motive de îngrijorare.
Ce fișiere sunt acceptate?
Fișiere APK individuale de până la 500 MB. Pachetele divizate (XAPK, APKM) și Android App Bundle (.aab) sunt containere sau formate de publicare, nu un singur pachet instalabil, așa că sunt respinse cu un mesaj clar în loc de un raport confuz.
Ce îmi spun detaliile de semnătură?
Fiecare aplicație Android este semnată, iar certificatul identifică cine a publicat-o. Vezi ce scheme de semnătură poartă pachetul (v1, v2, v3) și subiectul fiecărui semnatar, fereastra de valabilitate și amprentele MD5, SHA-1 și SHA-256. Două APK-uri cu amprente identice provin de la același editor — dacă ai încredere în acel editor rămâne la latitudinea ta.
Ce înseamnă insigna „Periculos” de pe o permisiune?
Este propria clasificare a Androidului: permisiunile periculoase pot accesa date private — locație, contacte, cameră, microfon, stocare — așa că sistemul întreabă utilizatorul înainte de a i le acorda. Insigna nu este o acuzație; o aplicație de hărți care cere locația este ceva normal. Marchează doar permisiunile care merită citite de două ori.