hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md
2024-02-11 01:46:25 +00:00

5.6 KiB

Dekompilatory APK

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Aby uzyskać dalsze szczegóły na temat każdego narzędzia, sprawdź oryginalny post na stronie https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

JD-Gui

Jako pionierski dekompilator GUI dla języka Java, JD-Gui pozwala na badanie kodu Java w plikach APK. Jest łatwy w użyciu; po uzyskaniu pliku APK, po prostu otwórz go za pomocą JD-Gui, aby przejrzeć kod.

Jadx

Jadx oferuje przyjazny interfejs do dekompilacji kodu Java z aplikacji Android. Zaleca się go ze względu na łatwość użycia na różnych platformach.

  • Aby uruchomić interfejs graficzny, przejdź do katalogu bin i wykonaj: jadx-gui
  • Do użycia w wierszu poleceń, zdekompiluj APK za pomocą: jadx app.apk
  • Aby określić katalog wyjściowy lub dostosować opcje dekompilacji: jadx app.apk -d <ścieżka do katalogu wyjściowego> --no-res --no-src --no-imports

GDA-android-reversing-Tool

GDA, narzędzie dostępne tylko dla systemu Windows, oferuje rozległe funkcje do inżynierii wstecznej aplikacji Android. Zainstaluj i uruchom GDA na swoim systemie Windows, a następnie załaduj plik APK do analizy.

Bytecode-Viewer

Z Bytecode-Viewerem możesz analizować pliki APK za pomocą wielu dekompilatorów. Po pobraniu uruchom Bytecode-Viewer, załaduj swój plik APK i wybierz dekompilatory, których chcesz użyć do jednoczesnej analizy.

Enjarify

Enjarify przekształca kod bajtowy Dalvik na kod bajtowy Java, umożliwiając bardziej efektywną analizę aplikacji Android przy użyciu narzędzi do analizy Java.

  • Aby użyć Enjarify, uruchom: enjarify app.apk Spowoduje to wygenerowanie odpowiednika kodu bajtowego Java dla podanego APK.

CFR

CFR potrafi dekompilować nowoczesne funkcje języka Java. Użyj go w następujący sposób:

  • Dla standardowej dekompilacji: java -jar ./cfr.jar "app.jar" --outputdir "output_directory"
  • Dla dużych plików JAR, dostosuj przydział pamięci JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"

Fernflower

Fernflower, analityczny dekompilator, wymaga zbudowania ze źródeł. Po zbudowaniu:

  • Zdekompiluj plik JAR: java -jar ./fernflower.jar "app.jar" "output_directory" Następnie wyodrębnij pliki .java z wygenerowanego pliku JAR za pomocą unzip.

Krakatau

Krakatau oferuje szczegółową kontrolę nad dekompilacją, zwłaszcza przy obsłudze bibliotek zewnętrznych.

  • Użyj Krakatau, określając ścieżkę biblioteki standardowej i plik JAR do dekompilacji: ./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

procyon

Dla prostego dekompilowania za pomocą procyon:

  • Zdekompiluj plik JAR do określonego katalogu: procyon -jar "app.jar" -o "output_directory"
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: