Visszafejtésre hibakeresés és Android-alkalmazások

Visszafejtésre hibakeresés és Android-alkalmazások

Ez a cikk elmagyarázza, hogyan kell csatolni a hibakereső az Android-alkalmazást, és menjen át a lépésről lépésre módszerek által okozott szerzett információk felhasználásával után decompiling alkalmazás.

A tesztkörnyezet követelményeknek:

A papír fogják használni az alábbi konfiguráció: Windows 8, Android Studio és IntelliJ IDEA. Eszköz: Nexus 4 Android verzió 4.4.4. Azt javasoljuk, hogy minden közmű hozzá a PATH környezeti változó, hogy megkönnyítse és felgyorsítsa a hozzáférést ezekhez eszközöket.

Android alkalmazás (APK), használt cikk letölthető itt: com.netspi.egruber.test.apk.

Az alábbi utasítások segítségével elkészítheti a készüléket a kísérletekhez.

Az aktiválás szakasz Fejlesztői beállítások

Ahhoz, hogy indulhat a hibakeresés USB engedélyezni kell az Android-eszköz (USB hibakeresés opció), amely „kommunikálni” a készülék segítségével egy sor eszközt Android SDK. De előtte, aktiválni kell részén fejlesztői lehetőségek. Az eszköz, bemegy a Beállítások> A telefonról és kattintson többször a pontot a build számot, és akkor megjelenik egy üzenet, hogy a partíció Fejlesztői beállítások engedélyezve.

Visszafejtésre hibakeresés és Android-alkalmazások

Visszafejtésre hibakeresés és Android-alkalmazások

1. ábra: Annak érdekében, hogy aktiválja a szakasz Fejlesztői beállítások, akkor kattintson többször a Build száma

Felbontás hibakeresés USB-n keresztül

Ahhoz, hogy a hibakeresés USB-port, menjen a Beállítások> Fejlesztői lehetőségek és ellenőrizze a jelölőnégyzetet az USB hibakeresést.

Visszafejtésre hibakeresés és Android-alkalmazások

2. ábra: Engedélyezze USB hibakeresés opciót

Csatlakoztassa a készüléket, és indítsa el az ADB

Az eszköz csatlakoztatása után a számítógéphez USB porton, akkor megjelenik egy üzenet «USB hibakereső csatlakoztatva a készülék». Azt is ellenőrizni kell, hogy tud-e csatlakozni a készülék az Android Debug Bridge alkalmazás (ADB), része az Android SDK (Android SDK Platform-tools csomag). A parancssorba írja be a következő parancsot:

A készülék jelenik meg a listában.

Visszafejtésre hibakeresés és Android-alkalmazások

3. ábra: a csatlakozó eszközök listáját

Ha az eszköz nem jelenik meg a listában, a legvalószínűbb oka helytelenül telepített meghajtók (Windows). Attól függően, hogy az eszközillesztő megtalálható akár az Android SDK, illetve a gyártó honlapján.

Vizsgáljuk meg az alkalmazás képes hibakeresés

Mielőtt hibakeresés Android-alkalmazás először ellenőriznie kell, hogy van-e ilyen lehetőség. A teszt lehet tenni számos módon.

Az első út - fut az Android Device Monitor. része az Android SDK (az eszközök mappában). A Windows, a fájl neve monitor.bat. Amikor megnyitja az Android Device Monitor eszköz jelenik meg a Devices.

Visszafejtésre hibakeresés és Android-alkalmazások

4. ábra: Alkalmazás Android Device Monitor

Ha bármilyen alkalmazás a készüléken, akkor hibakeresés kérelembe látható a listán. Csináltam egy tesztprogram, de a lista üres, mert a program nem lehet hibakeresése.

A második út, hogy teszteljék az alkalmazás hibakeresés - felfedezni a AndroidManifest.xml fájlt az alkalmazás (APK, Android alkalmazás csomag). APK egy zip-fájl, amely tartalmazza az összes szükséges információt, hogy az alkalmazás futtatásához Android-eszközön.

Amikor egy alkalmazás letölthető a Google Play Store, letölthető és pályázati csomag. Minden letöltött APK-fájlok általában a készüléken tárolt a mappában / data / app. Ha nem rendelkezik rendszergazdai hozzáférést, akkor nem kap egy listát a fájlokat a / data / app. Bár, ha tudja a nevét az APK-fájlt, akkor másolja a ADB segédprogram. Ahhoz, hogy megtudja a nevét, a APK-fájlt, írja be a következő parancsot:

Device parancsot húr. Ezután írja be a következő parancsot:

pm lista csomagok -f

A lista az összes csomagot a készüléken.

Visszafejtésre hibakeresés és Android-alkalmazások

5. ábra: A listát a csomagokat az eszközt

Nézzük a listát, azt látjuk, a teszt alkalmazás.

Visszafejtésre hibakeresés és Android-alkalmazások

6. ábra: A csomag létrehozza a teszt alkalmazás (kiemelve fehér)

Most meg kell másolni a csomag fájl. Nyisson meg egy shell, és adja meg a következő parancsot:

ADB pull /data/app/[.apk file] [hely]

Visszafejtésre hibakeresés és Android-alkalmazások

7. ábra: Másolás a APK-fájlt a készülék a rendszer

Most kell, hogy nyissa ki a csomagot fájlt, és megvizsgálja a tartalmát a AndroidManifest.xml. Sajnos, nem tudjuk csak kivonat az archívumot, mint APK-fájl kódolt bináris formában. A dekódoláshoz a leggyakrabban használt apktool segédprogram. bár tudom használni APK Studio. mert ez az alkalmazás barát grafikus felület. Később a cikkben lesz meséltek APK Studio.

Az APK Studio kattintson a kis zöld ikon, adjon meg egy nevet a projekt, és adja meg az elérési utat a APK fájlt. Akkor hadd írja, hogy mentse a projektet.

Visszafejtésre hibakeresés és Android-alkalmazások

8. ábra: Új projekt létrehozása a APK Studio

Megnyitása után a APK válassza AndroidManifest.xml fájlt és nézet beállításokat alkalmazás tag. Ha a zászló android: nyomonkövethető hiányzik (vagy jelen van, de az értéke hamis), akkor az alkalmazás nem debuggolható.

Visszafejtésre hibakeresés és Android-alkalmazások

9. ábra: A tartalma AndroidManifest.xml fájl

Módosítása AndroidManifest.xml fájl

Amikor a közüzemi apktool APK Studio vagy tudjuk módosítani a fájlokat, és mit tartalmaz a csomagolás vissza a csomagot. Most megváltoztathatja a AndroidManifest.xml fájlt, hogy az alkalmazás lehet hibakeresése. Hozzáadása a tag line alkalmazás android: nyomonkövethető = "true".

Visszafejtésre hibakeresés és Android-alkalmazások

10. ábra: változtatni a tartalmát a címke alkalmazása

Hozzáadása után kattintsunk a zászló ikonra „kalapács”, és újra össze a csomagot. Építse újra a csomag lesz a build / apk könyvtárban.

Visszafejtésre hibakeresés és Android-alkalmazások

11. ábra: újratelepítése a csomag sikeres volt

A visszaállítás után a csomag aláírása és újra lehet telepíteni a készülékre (Android-alkalmazások minden alá kell írni). A legtöbb alkalmazás nem ellenőrzi a tanúsítványt, amellyel egy aláírás bekövetkezik. Ellenkező esetben meg kell változtatni a kódot, amely elvégzi ezt az ellenőrzést.

Most telepíteni kell újjáépíteni a csomagot. Eleinte távolítsa el a régi alkalmazást a következő parancsot:

ADB pm eltávolítást [csomag neve]

Ezután az új csomag telepítéséhez:

ADB telepíteni [.apk file]

Azt is vegye ki, és a telepítésnél egy parancsot:

ADB telepíteni -r [.apk file]

Visszafejtésre hibakeresés és Android-alkalmazások

12. ábra: beállítása az újraépítés csomag

Ellenőrizze, hogy a szerelés alkalmazás megfelelően fut a készüléken. Ha minden működik, menjen vissza az Android Device Monitor, ahol egy teszt alkalmazás jelenik meg.

Visszafejtésre hibakeresés és Android-alkalmazások

13. ábra: Most, újjáépíteni a alkalmazások debuggolható

Beállítása a fejlesztői környezet (IDE)

Most, hogy újjáépítsék a kérelmek is felvette a debugger, de először létre kell hozni egy projektet az IDE (a cikkben használt IntelliJ IDEA). Hozzon létre egy új projektet. Az alkalmazás neve adja meg név. A Csomag neve meg egy nevet, amely megegyezik a mappák hierarchiáját újjáépíteni a csomagot.

Visszafejtésre hibakeresés és Android-alkalmazások

14. ábra: Új projekt létrehozása a IntelliJ IDEA

Általában a nevét APK-fájl megfelel a mappastruktúrát, akkor is, ha nem biztos a dolgában, az APK Studio egy könyvtárhierarchiában azt a mappát, ahol az alkalmazás fájlok találhatók. Az én esetemben, a nevét és a mappa struktúra azonos (com.netspi.egruber.test).

Visszafejtésre hibakeresés és Android-alkalmazások

15. ábra: hierarchiája teszt alkalmazás könyvtár

Ha nincs bejelölve «létrehozása Hello World Activity» és hozzák létre a projekt (az összes többi paraméter változatlan marad az alapértelmezett). Az új projekt kell kinéznie:

Visszafejtésre hibakeresés és Android-alkalmazások

16. ábra: A hierarchia mappák és fájlok az új projekt

Miután létrehoztuk a projekt hozzá szeretné adni a forráskód az APK-fájlt a debugger „tudott” szimbólum nevek, módszerek, változók, és így tovább. D. A jó hír az, hogy az Android-alkalmazás visszafordítani gyakorlatilag minőségromlás nélkül (forráskód ugyanaz lesz az eredeti). Miután decompiling forráskód behozni a fejlesztőkörnyezet (IDE).

Ismerkedés a forráskódját az alkalmazás csomag

Először is, meg kell konvertálni az APK-t a jar-fájl. Akkor használjuk a java-decompiler forráskódért a kérelmet. Átalakítás jar fog tenni dex2jar segédprogramot. Van dex2jar d2j-dex2jar.bat használt fájl konvertáló APK jar. A parancs szintaxisa elég egyszerű:

d2j-dex2jar.bat [.apk fájl]

Visszafejtésre hibakeresés és Android-alkalmazások

17. ábra: átalakítása APK üvegben

Aztán nyílt vagy húzza a fájlt a JD-GUI (ez a java-decompiler).

Visszafejtésre hibakeresés és Android-alkalmazások

18. ábra: szerkezete a jar-fájl

Jar-fájlt meg kell jeleníteni egy hierarchikus struktúrát, amelyen belül a java-fájlok olvasható forráskódot. Menjen a File> Save Minden forrás, a csomag a teljes forráskódot a zip-archívumot.

Visszafejtésre hibakeresés és Android-alkalmazások

19. ábra: Mentés a forráskódot decompiled fájl

A mentés után a forrás kicsomagolása az archívum egy külön könyvtárba.

Visszafejtésre hibakeresés és Android-alkalmazások

20. ábra: A kicsomagolt fájl

Most meg kell importálni a két könyvtár a projektben az IDE korábban létrehozott. A IntelliJ megy az src mappát, és másolja a tartalmát vissza kicsomagolt archív (két könyvtár).

Visszafejtésre hibakeresés és Android-alkalmazások

21. ábra: A két másolt mappákat src könyvtárban

Visszatérve IntelliJ látjuk, hogy a frissített tervezetet.

Visszafejtésre hibakeresés és Android-alkalmazások

22. ábra: A projekt alakult forráskód

Ha rákattintunk bármely tétel a listán, azt látjuk a forráskódot. Ahogy a lenti képen (forráskód LoginActivity osztály), a forráskód összezavart segítségével ProGuard.

Visszafejtésre hibakeresés és Android-alkalmazások

23. ábra: Homályosított forráskód osztály LoginActivity

Most, hogy a projekt megjelent a forráskódot, akkor kezdjük töréspont a módszerek és változók. Ahhoz, hogy töréspont alkalmazás leáll. Példaként én meg egy töréspont a módszer (jobbra a eltorzítva kód) feldolgozásáért felelős az információ bekerül a szövegmezőbe.

Visszafejtésre hibakeresés és Android-alkalmazások

24. ábra: szállított töréspontot eltakart módszerrel

Amint a töréspont, csatlakoztassa a hibakereső eljárás az eszközön kattintva a képernyő ikonra a jobb felső sarokban (IDE logója változhat).

25. ábra: csatlakoztatása a hibakereső folyamat

Most meg kell adnia, hogy a folyamat a csatlakoztatni kívánt. nyomonkövethető = „true”: Csak feldolgozza a zászló android jelenik meg.

Visszafejtésre hibakeresés és Android-alkalmazások

26. ábra: Azon eljárások összekötő debugger

Kiválasztása után folyamat hibakereső kapcsolódni fog a készülék.

Visszafejtésre hibakeresés és Android-alkalmazások

27. ábra: A hibakereső csatlakozik a folyamat a készüléken futó

A szöveges mezőben, én meg a 42 számú (ha emlékszel, a megfelelő módszert kell típuspontjának).

Visszafejtésre hibakeresés és Android-alkalmazások

28. ábra: A mezőbe írja be a számot 42

Visszafejtésre hibakeresés és Android-alkalmazások

29. ábra: kirúgták töréspont

A lenti képen látható a szám, amit már korábban bemutatott a szövegmezőbe.

Visszafejtésre hibakeresés és Android-alkalmazások

30. ábra: A változók listáját a jelenlegi esetben az osztály

  • Visszafejtésre hibakeresés és Android-alkalmazások
  • Visszafejtésre hibakeresés és Android-alkalmazások
  • Visszafejtésre hibakeresés és Android-alkalmazások
  • Visszafejtésre hibakeresés és Android-alkalmazások