Jak dekompilować aplikację na Androida Apk

niedawno opublikowaliśmy przewodnik, w jaki sposób dodawać zależności tylko dla określonych productFlavors. Po wdrożeniu niezbędnych kroków chcieliśmy upewnić się, że finał .apk faktycznie nie zawiera żadnych klas niechcianych już. W tym poście pokażemy, jak sprawdzić, które klasy i zasoby są w apk.

Uwaga: Ten przewodnik jest przeznaczony do dekompilacji własnych apk, a nie ciężkiej pracy innych programistów. W związku z tym nie uwzględniliśmy żadnych kroków w celu inżynierii wstecznej lub obejścia zaciemnienia kodu.

>

przygotowanie: instalacja narzędzi

Android apk jest w zasadzie spakowany katalog, który zawiera niektóre surowce (obrazy, Pliki Układów, ..) oraz plik classes.dex. Ten plik zawiera cały aktualny kod i interesuje nas najbardziej. Pobierzmy wszystkie potrzebne narzędzia:

  • musisz rozpakować plik apk. Możesz użyć wbudowanej funkcjonalności systemu operacyjnego lub zainstalować swój ulubiony (Nie)archiwizator, taki jak 7-Zip.
  • aby odwrócić plik classes.dexdo pliku .jar, musisz pobrać narzędzie dex2jar.
  • wreszcie, aby plik.jar był czytelny dla ludzkiego oka, Pobierz i uruchom JD-Gui.

odzyskanie kodu

w porządku, teraz nadszedł czas, aby wykonać rzeczywistą pracę. Skopiuj plik apk do katalogu, w którym chcesz pracować. Rozpakuj plik apk za pomocą wybranego narzędzia i powinieneś otrzymać katalog z kilkoma podkatalogami i kilkoma plikami.

rozpakowane .apk

Zapraszam do przeglądania AndroidManifest.xml lub res katalog. Najciekawszym utworem jest classes.dex. W ten sposób Przełącz się na pobrane narzędzie dex2jar I Otwórz nowy terminal.

Jeśli korzystasz z systemu Mac OS, wykonajsh d2j-dex2jar.sh -f -o output.jar your_app_input.apk. Użytkownicy systemu Windows mogą użyć pliku .bat, aby utworzyć plik .jar. Po uruchomieniu narzędzia przejdź do nowego pliku.jar.

przeglądanie Zdekompilowanego kodu

na koniec uruchom pobrany plikJD-GUI I użyj go, aby otworzyć plik.jar.

Dekompilowany Widok kodu z JD-GUI

można przeglądać wszystkie pakiety i klasy, które są w apk. Kod jest wersją skróconą i nie zawiera żadnych komentarzy ani zbędnych struktur, które widzisz w swoim IDE. Pamiętaj, że jest to skompilowana minimalizacja Twojej aplikacji. Niemniej jednak, powinno dać ci wystarczająco dużo informacji, aby dowiedzieć się o podstawach aplikacji. Na przykład pomogło nam to zweryfikować, czy w aplikacji nie ma już pakietów związanych z biblioteką admob.

inne opcje

Jeśli potrzebujesz tylko szybkiej dekompilacji, możesz użyć narzędzia online pod adresem www.decompileandroid.com/.

dla bardziej zaawansowanych celów dekompilacji możesz spojrzeć na apktool, który daje wiele dodatkowych pomocników.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *