# APK decompiler'ları {{#include ../../banners/hacktricks-training.md}} **Her bir araç hakkında daha fazla bilgi için orijinal gönderiyi kontrol edin** [**https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr**](https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr) ### [JD-Gui](https://github.com/java-decompiler/jd-gui) Öncü GUI Java decompiler'ı olan **JD-Gui**, APK dosyaları içindeki Java kodunu incelemenizi sağlar. Kullanımı oldukça basittir; APK'yı aldıktan sonra, kodu incelemek için JD-Gui ile açmanız yeterlidir. ### [Jadx](https://github.com/skylot/jadx) **Jadx**, Android uygulamalarından Java kodunu decompile etmek için kullanıcı dostu bir arayüz sunar. Farklı platformlarda kullanım kolaylığı nedeniyle önerilir. - GUI'yi başlatmak için, bin dizinine gidin ve şunu çalıştırın: `jadx-gui` - Komut satırı kullanımı için, bir APK'yı decompile etmek için: `jadx app.apk` - Çıktı dizinini belirtmek veya decompilation seçeneklerini ayarlamak için: `jadx app.apk -d --no-res --no-src --no-imports` ### [GDA-android-reversing-Tool](https://github.com/charles2gan/GDA-android-reversing-Tool) **GDA**, yalnızca Windows için bir araçtır ve Android uygulamalarını tersine mühendislik için kapsamlı özellikler sunar. GDA'yı Windows sisteminize kurun ve çalıştırın, ardından analiz için APK dosyasını yükleyin. ### [Bytecode-Viewer](https://github.com/Konloch/bytecode-viewer/releases) **Bytecode-Viewer** ile birden fazla decompiler kullanarak APK dosyalarını analiz edebilirsiniz. İndirdikten sonra, Bytecode-Viewer'ı çalıştırın, APK'nızı yükleyin ve eşzamanlı analiz için kullanmak istediğiniz decompiler'ları seçin. ### [Enjarify](https://github.com/Storyyeller/enjarify) **Enjarify**, Dalvik bytecode'unu Java bytecode'una çevirir, bu da Java analiz araçlarının Android uygulamalarını daha etkili bir şekilde analiz etmesini sağlar. - Enjarify'yi kullanmak için, şunu çalıştırın: `enjarify app.apk` Bu, sağlanan APK'nın Java bytecode eşdeğerini oluşturur. ### [CFR](https://github.com/leibnitz27/cfr) **CFR**, modern Java özelliklerini decompile edebilir. Aşağıdaki gibi kullanın: - Standart decompilation için: `java -jar ./cfr.jar "app.jar" --outputdir "output_directory"` - Büyük JAR dosyaları için, JVM bellek tahsisini ayarlayın: `java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"` ### [Fernflower](https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine) **Fernflower**, analitik bir decompiler'dır ve kaynak koddan derlenmesi gerekir. Derledikten sonra: - Bir JAR dosyasını decompile edin: `java -jar ./fernflower.jar "app.jar" "output_directory"` Ardından, oluşturulan JAR'dan `.java` dosyalarını çıkarmak için `unzip` kullanın. ### [Krakatau](https://github.com/Storyyeller/Krakatau) **Krakatau**, decompilation üzerinde detaylı kontrol sunar, özellikle dış kütüphaneleri işlerken. - Krakatau'yu kullanmak için standart kütüphane yolunu ve decompile edilecek JAR dosyasını belirtin: `./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"` ### [procyon](https://github.com/mstrobel/procyon) **procyon** ile basit bir decompilation için: - Bir JAR dosyasını belirtilen bir dizine decompile edin: `procyon -jar "app.jar" -o "output_directory"` ### [frida-DEXdump](https://github.com/hluwa/frida-dexdump) Bu araç, bellek içindeki çalışan bir APK'nın DEX'ini dökmek için kullanılabilir. Bu, uygulama bellek içinde çalıştırıldığında kaldırılan statik obfuscation'ı aşmaya yardımcı olur. {{#include ../../banners/hacktricks-training.md}}