APK decompilers
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
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 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, 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.
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 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 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, 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 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"
Dla prostego dekompilowania za pomocą procyon:
Zdekompiluj plik JAR do określonego katalogu:
procyon -jar "app.jar" -o "output_directory"
Last updated