APK decompilers
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Für weitere Details zu jedem Tool siehe 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 die Untersuchung von Java-Code innerhalb von APK-Dateien. Es ist einfach zu bedienen; nach dem Erhalt der APK öffne 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, navigiere zum bin-Verzeichnis und führe aus: jadx-gui
Für die Verwendung über die Kommandozeile dekompiliere 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. Installiere und führe GDA auf deinem Windows-System aus, lade dann die APK-Datei zur Analyse.
Mit Bytecode-Viewer kannst du APK-Dateien mit mehreren Decompilern analysieren. Nach dem Herunterladen führe Bytecode-Viewer aus, lade deine APK und wähle die Decompiler aus, die du für die gleichzeitige Analyse verwenden möchtest.
Enjarify übersetzt Dalvik-Bytecode in Java-Bytecode, sodass Java-Analysetools Android-Anwendungen effektiver analysieren können.
Um Enjarify zu verwenden, führe aus: enjarify app.apk
Dies erzeugt den Java-Bytecode, der dem bereitgestellten APK entspricht.
CFR kann moderne Java-Funktionen dekompilieren. Verwende es wie folgt:
Für die Standard-Dekompilierung: java -jar ./cfr.jar "app.jar" --outputdir "output_directory"
Für große JAR-Dateien passe 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:
Dekompliliere eine JAR-Datei: java -jar ./fernflower.jar "app.jar" "output_directory"
Extrahiere dann die .java
-Dateien aus der generierten JAR mit unzip
.
Krakatau bietet detaillierte Kontrolle über die Dekompilierung, insbesondere beim Umgang mit externen Bibliotheken.
Verwende Krakatau, indem du den Pfad zur Standardbibliothek und die JAR-Datei angibst, 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:
Dekompliliere eine JAR-Datei in ein angegebenes Verzeichnis: procyon -jar "app.jar" -o "output_directory"
Dieses Tool kann verwendet werden, um das DEX einer laufenden APK im Speicher zu dumpen. Dies hilft, statische Obfuskation zu überwinden, die entfernt wird, während die Anwendung im Speicher ausgeführt wird.
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)