Decompilarea și depanare android-aplicații

Decompilarea și depanare android-aplicații

Acest articol va explica modul în care să se atașeze un depanator la Android aplicația și du-te prin pas cu pas metode cauzate de utilizarea informațiilor obținute după aplicarea decompiling.

la cerințele de mediu de testare:

Hârtia va fi utilizată următoarea configurație: Windows 8, Android Studio și IntelliJ IDEA. Dispozitiv: Nexus 4 cu Android versiunea 4.4.4. Recomand la toate utilitatile adauga la variabila de mediu PATH, pentru a facilita și a accelera accesul la aceste instrumente.

Pachetul de aplicații Android (APK), utilizat în articol poate fi descărcat de aici: com.netspi.egruber.test.apk.

Instrucțiunile de mai jos vă va ajuta să se pregătească dispozitivul pentru experimente.

Activare secțiunea Opțiuni pentru dezvoltatori

Pentru a începe depanarea prin USB trebuie să fie activat pe Android-dispozitiv (opțiunea de depanare USB), care va „comunica“ cu dispozitivul prin intermediul unui set de instrumente SDK Android. Dar, înainte de asta, trebuie să activați opțiuni pentru dezvoltatori secțiune. Pe dispozitiv, du-te în Setări> Despre telefon și apăsați de mai multe ori pe punctul de numărul de a construi, și ar trebui să vedeți un mesaj care indică faptul că opțiunile de partiție pentru dezvoltatori activat.

Decompilarea și depanare android-aplicații

Decompilarea și depanare android-aplicații

Figura 1: Pentru a activa opțiunile sectiunea pentru dezvoltatori, trebuie să faceți clic de mai multe ori pe numărul Build

Rezoluția de depanare prin USB

Pentru a permite depanarea prin USB-port, accesați Setări> Opțiuni dezvoltator și bifați caseta de lângă depanare USB.

Decompilarea și depanare android-aplicații

Figura 2: Activează opțiunea de depanare USB

Conectați dispozitivul și începe ADB

După conectarea dispozitivului la un computer prin USB-port, ar trebui să vedeți un «depanare USB conectat pe dispozitivul» mesaj. De asemenea, verificați dacă vă puteți conecta la dispozitiv utilizând aplicația Android Debug Bridge (ADB), face parte din Android SDK (pachetul SDK Android Platform-unelte). În linia de comandă, tastați următoarea comandă:

Dispozitivul ar trebui să apară în listă.

Decompilarea și depanare android-aplicații

Figura 3: Lista de dispozitive conectate

Dacă dispozitivul nu apare în listă, cel mai probabil motiv este instalat incorect drivere (în Windows). În funcție de driverul de dispozitiv poate fi găsit fie în Android SDK-ul, sau pe site-ul producătorului.

Testați aplicația pe capacitatea de a depana

Înainte de depanare Android cerere trebuie să verifice mai întâi dacă există o astfel de oportunitate. Testul se poate face în mai multe moduri.

Primul mod - rula dispozitiv Android Monitor. o parte din SDK-ul Android (în folderul instrumente). În Windows, fișierul este numit monitor.bat. Când deschideți dispozitivul Android dispozitiv Monitor va apărea sub Dispozitive.

Decompilarea și depanare android-aplicații

Figura 4: Aplicație dispozitiv Android Monitor

În cazul în care orice aplicație de pe dispozitiv, puteți depana o aplicație așa cum este prezentat în listă. Am creat un program de testare, dar lista este goală, deoarece programul nu poate fi depanat.

A doua modalitate de a testa aplicația de pe depanare - explora fișierul AndroidManifest.xml din pachetul de aplicații (APK, pachet de aplicații Android). APK este un zip-fișier care conține toate informațiile necesare pentru a rula aplicația pe Android-dispozitiv.

Ori de câte ori o aplicație este descărcată de pe Google Play Store, descărcați și pachetul de aplicații. Toate APK-fișierele descărcate sunt de obicei stocate pe dispozitiv în directorul / date / aplicație. Dacă nu aveți acces de root, nu puteți obține o listă de fișiere în directorul / date / app. Deși, dacă știi numele APK-fișier, aveți posibilitatea să-l copiați folosind utilitarul ADB. Pentru a afla numele APK-fișier, introduceți următoarea comandă:

Dispozitivul va comanda șir. Apoi, introduceți următoarea comandă:

pachete lista pm -f

O listă a tuturor pachetelor de pe dispozitiv.

Decompilarea și depanare android-aplicații

Figura 5: O listă de pachete cu dispozitivul

Privind la lista, vom găsi aplicația de testare.

Decompilarea și depanare android-aplicații

Figura 6: Pachetul creează aplicația de testare (evidențiată în alb)

Acum, trebuie să copiați fișierul pachetului. Deschideți o consolă și introduceți următoarea comandă:

fișier /data/app/[.apk adb trage] [Locul de amplasare]

Decompilarea și depanare android-aplicații

Figura 7: Copiați APK-fișier de la aparat la sistem

Acum aveți nevoie pentru a deschide fișierul pachetului și să examineze conținutul AndroidManifest.xml. Din păcate, nu putem extrage doar arhiva, ca APK-fișier este codificat într-un format binar. Pentru decodificare, cel mai utilizat în mod obișnuit apktool utilitate. deși am folosi APK Studio. deoarece această aplicație interfață grafică prietenoasă. Mai târziu, în articol se va spune despre APK Studio.

Fișierul .apk Studio faceți clic pe pictograma verde mic, specificați un nume pentru proiect și specificați calea către fișierul APK. Atunci să intre pentru a salva proiectul.

Decompilarea și depanare android-aplicații

Figura 8: Crearea unui nou proiect în APK Studio

După deschiderea fișierului APK selectați AndroidManifest.xml fișiere și setări de vizualizare tag-ul aplicației. Dacă indicatorul este Android: debuggable absent (sau prezent, dar este setat la fals), apoi, cererea nu poate fi depanat.

Decompilarea și depanare android-aplicații

Figura 9: Conținutul de fișier AndroidManifest.xml

Modificarea fișier AndroidManifest.xml

Când utilitarul apktool APK Studio sau putem modifica fișierele și conținutul ambalajului înapoi în ambalaj. Acum vom schimba fișierul AndroidManifest.xml, astfel încât aplicația poate fi depanat. Adăugarea în cadrul tag-ul liniei de aplicații Android: debuggable = "true".

Decompilarea și depanare android-aplicații

Figura 10: Modificarea conținutului unei aplicații tag

După adăugarea facem clic pe pictograma de pavilion pentru „ciocan“ și re-asambla pachetul. Rebuild pachetul va fi în directorul build / apk.

Decompilarea și depanare android-aplicații

Figura 11: Reinstalarea pachetul a fost de succes

După reconstruirea pachetului este semnat și poate fi re-instalat pe dispozitivul (trebuie să fie semnat cu Android Toate aplicațiile). Cele mai multe aplicații nu verifică certificatul prin care se produce o semnătură. În caz contrar, trebuie să modificați codul care efectuează această verificare.

Acum trebuie să instalați reconstrui pachetul. La început, eliminați vechea aplicație cu următoarea comandă:

adb pm dezinstalare [numele pachetului]

Apoi, instalați un nou pachet:

adb instalați [fișier .apk]

De asemenea, puteți elimina și instala pachetul într-o singură comandă:

adb instalați -r [fișier .apk]

Decompilarea și depanare android-aplicații

Figura 12: Setarea pachetului reconstrui

Verificați dacă aplicația funcționează corect pe Instalation dispozitiv. Dacă totul este de lucru, du-te înapoi în Android Monitor dispozitiv, în cazul în care ar trebui să apară o aplicație de testare.

Decompilarea și depanare android-aplicații

Figura 13: Acum, reconstrui aplicațiile pot fi depanate

Configurarea mediului de dezvoltare (IDE)

Acum, pentru a reconstrui aplicațiile pot fi ridicate debugger, dar trebuie să creați mai întâi un proiect în IDE (în articol utilizat IntelliJ IDEA). Crearea unui proiect nou. În numele aplicației specificați orice nume. În numele pachetului specifica un nume care este identică cu ierarhia directoarelor reconstrui pachetul.

Decompilarea și depanare android-aplicații

Figura 14: Crearea unui nou proiect în IntelliJ IDEA

De obicei, numele APK-fișier se potrivește cu structura de directoare, chiar dacă nu sunteți sigur, verificați APK Studio într-o ierarhie director în directorul unde se află fișierele de aplicație. În cazul meu, numele și dosarul structura este identică (com.netspi.egruber.test).

Decompilarea și depanare android-aplicații

Figura 15: Ierarhia directorul aplicației de test

Debifează «Crearea Hello World de activitate» și finaliza crearea proiectului (toți ceilalți parametri rămân implicit). Noul proiect ar trebui să arate astfel:

Decompilarea și depanare android-aplicații

Figura 16: Ierarhia de foldere și fișiere ale noului proiect

După crearea proiectul pe care doriți să adăugați codul sursă al APK-fișier la debugger „cunoscut“ nume de simboluri, metode, variabile, și așa mai departe. D. Vestea bună este că Android aplicația poate decompila practic nici o pierdere de calitate (codul sursă va fi aceeași cu originalul). După codul sursă decompilării este importat în mediul de dezvoltare (IDE).

Obținerea codului sursă a pachetului de aplicare

În primul rând, aveți nevoie pentru a converti fișierul APK în borcan-fișier. Apoi, vom folosi java-Decompiler obține codul sursă al aplicației. Convertirea la borcan se va face cu utilitate dex2jar. Avem fișier d2j-dex2jar.bat dex2jar folosit pentru a converti APK borcan. Sintaxa comenzii este destul de simplu:

d2j-dex2jar.bat [fișier .apk]

Decompilarea și depanare android-aplicații

Figura 17: Conversia APK în borcan

Apoi, deschideți sau trageți fișierul JD-GUI (acest java-decompilator).

Decompilarea și depanare android-aplicații

Figura 18: Structura jar-fișier

Jar-fișier ar trebui să fie afișat într-o structură ierarhică în care sunt Java-fișiere cu codul sursă poate fi citit. Du-te la File> Salvați toate sursele, la pachet toate codul sursă într-un zip-arhivă.

Decompilarea și depanare android-aplicații

Figura 19: Salvarea fișierului codul sursă decompiled

După salvarea sursei despachetați arhiva într-un director separat.

Decompilarea și depanare android-aplicații

Figura 20: a despachetat fișierul

Acum, trebuie să importați cele două directoare în proiect în IDE creat anterior. În IntelliJ du-te în folderul src și copiați conținutul arhivei înapoi neambalat (două directoare).

Decompilarea și depanare android-aplicații

Figura 21: Ambele directoare copiate în directorul src

Revenind la Intellij, vom vedea proiectul actualizat.

Decompilarea și depanare android-aplicații

Figura 22: Proiectul a apărut codul sursă

Dacă facem clic pe orice element din listă, putem vedea codul sursă. După cum se vede în imaginea de mai jos (codul sursă clasa LoginActivity), codul sursă utilizând ProGuard.

Decompilarea și depanare android-aplicații

Figura 23: codul sursă de clasă ascuns al LoginActivity

Acum, că proiectul a apărut codul sursă, putem începe să se stabilească puncte de întrerupere pe metode și variabile. Pentru a realiza aplicarea punct de întrerupere se va opri. Ca un exemplu, am stabilit un punct de întrerupere pe metoda (chiar în codul disimulat) responsabil pentru procesarea informațiilor introduse în câmpul de text.

Decompilarea și depanare android-aplicații

Figura 24: livrat breakpoint pe metoda obfuscated

De îndată ce breakpoint, conectați debugger la un proces pe dispozitiv, făcând clic pe pictograma de pe ecran în colțul din dreapta sus (pe pictograma IDE poate varia).

Figura 25: Conectarea procesului debugger

În continuare vi se va cere să selectați procesul pe care doriți să vă conectați. debuggable = „true“: Numai procese cu steagul de Android va fi afișat.

Decompilarea și depanare android-aplicații

Figura 26: Lista de procese pentru conectarea debugger

După selectarea procesului depanator se va conecta la dispozitiv.

Decompilarea și depanare android-aplicații

Figura 27: Depanatorul este conectat la proces care rulează pe dispozitiv

În caseta de text, voi introduce numărul 42 (dacă vă amintiți, la metoda adecvată ar trebui să Breakpoint).

Decompilarea și depanare android-aplicații

Figura 28: În caseta de text, introduceți numărul 42

Decompilarea și depanare android-aplicații

Figura 29: concediat breakpoint

În captura de ecran de mai jos puteți vedea numărul pe care am introdus mai devreme în caseta de text.

Decompilarea și depanare android-aplicații

Figura 30: Lista variabilelor de instanța curentă a clasei

  • Decompilarea și depanare android-aplicații
  • Decompilarea și depanare android-aplicații
  • Decompilarea și depanare android-aplicații
  • Decompilarea și depanare android-aplicații