hacktricks/mobile-pentesting/android-app-pentesting/apk-decompilers.md

5.7 KiB

APK decompilers

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}

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

JD-Gui

Jako pionierski GUI dekompilator Java, JD-Gui pozwala na badanie kodu Java w plikach APK. Jest łatwy w użyciu; po uzyskaniu APK wystarczy otworzyć go w JD-Gui, aby sprawdzić kod.

Jadx

Jadx oferuje przyjazny interfejs do dekompilacji kodu Java z aplikacji na Androida. Jest polecany za łatwość użycia na różnych platformach.

  • Aby uruchomić GUI, przejdź do katalogu bin i wykonaj: jadx-gui
  • Do użycia w wierszu poleceń, dekompiluj 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 tylko dla systemu Windows, oferuje rozbudowane funkcje do inżynierii odwrotnej aplikacji na Androida. Zainstaluj i uruchom GDA na swoim systemie Windows, a następnie załaduj plik APK do analizy.

Bytecode-Viewer

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

Enjarify

Enjarify tłumaczy bajtkod Dalvik na bajtkod Java, umożliwiając narzędziom analizy Java skuteczniejszą analizę aplikacji na Androida.

  • Aby użyć Enjarify, uruchom: enjarify app.apk To generuje bajtkod Java odpowiadający podanemu APK.

CFR

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

  • Do 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 budowy ze źródła. Po zbudowaniu:

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

Krakatau

Krakatau oferuje szczegółową kontrolę nad dekompilacją, szczególnie w przypadku obsługi zewnętrznych bibliotek.

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

procyon

Dla prostych dekompilacji z procyon:

  • Dekompiluj plik JAR do określonego katalogu: procyon -jar "app.jar" -o "output_directory"

frida-DEXdump

To narzędzie może być używane do zrzucania DEX działającego APK w pamięci. Pomaga to pokonać statyczną obfuskację, która jest usuwana podczas wykonywania aplikacji w pamięci.

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}