APK decompilers

Unterstützen Sie HackTricks

Für weitere Details zu jedem Tool überprüfen Sie den Originalbeitrag von https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

Als der Pionier unter den GUI-Java-Decompilern ermöglicht JD-Gui Ihnen, Java-Code innerhalb von APK-Dateien zu untersuchen. Es ist einfach zu bedienen; nachdem Sie die APK erhalten haben, öffnen Sie sie einfach mit JD-Gui, um den Code zu inspizieren.

Jadx bietet eine benutzerfreundliche Oberfläche zum Decompilieren von Java-Code aus Android-Anwendungen. Es wird wegen seiner Benutzerfreundlichkeit auf verschiedenen Plattformen empfohlen.

  • Um die GUI zu starten, navigieren Sie zum bin-Verzeichnis und führen Sie aus: jadx-gui

  • Für die Verwendung über die Befehlszeile dekompilieren Sie eine APK mit: jadx app.apk

  • Um ein Ausgabeverzeichnis anzugeben oder Decompilierungsoptionen anzupassen: jadx app.apk -d <path to output dir> --no-res --no-src --no-imports

GDA, ein nur für Windows verfügbares Tool, bietet umfangreiche Funktionen für das Reverse Engineering von Android-Apps. Installieren und führen Sie GDA auf Ihrem Windows-System aus, und laden Sie dann die APK-Datei zur Analyse.

Mit Bytecode-Viewer können Sie APK-Dateien mit mehreren Decompilern analysieren. Nach dem Herunterladen führen Sie Bytecode-Viewer aus, laden Ihre APK und wählen die Decompiler aus, die Sie für die gleichzeitige Analyse verwenden möchten.

Enjarify übersetzt Dalvik-Bytecode in Java-Bytecode, sodass Java-Analysetools Android-Anwendungen effektiver analysieren können.

  • Um Enjarify zu verwenden, führen Sie aus: enjarify app.apk Dies erzeugt den Java-Bytecode, der dem bereitgestellten APK entspricht.

CFR kann moderne Java-Funktionen dekompilieren. Verwenden Sie es wie folgt:

  • Für die Standard-Dekompilierung: java -jar ./cfr.jar "app.jar" --outputdir "output_directory"

  • Für große JAR-Dateien passen Sie die JVM-Speicherzuweisung an: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"

Fernflower, ein analytischer Decompiler, muss aus dem Quellcode erstellt werden. Nach dem Erstellen:

  • Dekompilieren Sie eine JAR-Datei: java -jar ./fernflower.jar "app.jar" "output_directory" Extrahieren Sie dann die .java-Dateien aus der generierten JAR mit unzip.

Krakatau bietet detaillierte Kontrolle über die Dekompilierung, insbesondere beim Umgang mit externen Bibliotheken.

  • Verwenden Sie Krakatau, indem Sie den Pfad zur Standardbibliothek und die JAR-Datei angeben, die dekompiliert werden soll: ./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

Für eine einfache Dekompilierung mit procyon:

  • Dekompilieren Sie eine JAR-Datei in ein angegebenes Verzeichnis: procyon -jar "app.jar" -o "output_directory"

Last updated