![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-675a60af.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-3c326af7.jpg)
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-2688cb19.jpg)
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-apps (android-aplicații) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-4d7e9a40.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-4e274827.jpg)
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ție (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-a70448e7.jpg)
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.
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-cb988a61.jpg)
Figura 5: O listă de pachete cu dispozitivul
Privind la lista, vom găsi aplicația de testare.
![Decompilarea și depanare android-aplicație (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-10535cc9.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-39c683b3.jpg)
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ție (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-5445e46b.jpg)
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ție (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-606d7fbf.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-1f5a277b.jpg)
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-apps (android-aplicații) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-05178970.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-489b76e3.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-2810c05b.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-d70e5ac4.jpg)
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).
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-9e89d4b3.jpg)
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-apps (android-aplicații) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-9aef03cc.jpg)
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ție (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-0b9f9e96.jpg)
Figura 17: Conversia APK în borcan
Apoi, deschideți sau trageți fișierul JD-GUI (acest java-decompilator).
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-cd5ade42.jpg)
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-apps (android-aplicații) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-f39b13f9.jpg)
Figura 19: Salvarea fișierului codul sursă decompiled
După salvarea sursei despachetați arhiva într-un director separat.
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-ad3ae55e.jpg)
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).
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-b6e80671.jpg)
Figura 21: Ambele directoare copiate în directorul src
Revenind la Intellij, vom vedea proiectul actualizat.
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-cf376d54.jpg)
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-apps (android-aplicații) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-766dedca.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-addedb32.jpg)
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ție (tastați următoarea comandă) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-3319a8a7.jpg)
Figura 26: Lista de procese pentru conectarea debugger
După selectarea procesului depanator se va conecta la dispozitiv.
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-fddc49d4.jpg)
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ție (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-1004b457.jpg)
Figura 28: În caseta de text, introduceți numărul 42
![Decompilarea și depanare android-aplicație (depanare) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-2e6e5255.jpg)
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.
![Decompilare și depanare Android-app (dispozitiv Android Monitor) Decompilarea și depanare android-aplicații](https://images-on-off.com/images/45/dekompilyatsiyaiotladkaandroidprilozheni-b2efe1a5.jpg)
Figura 30: Lista variabilelor de instanța curentă a clasei