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

4.6 KiB
Raw Blame History

APK decompilers

{% hint style="success" %} AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)
GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %} {% endhint %}

Her bir araç hakkında daha fazla bilgi için https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr adresindeki orijinal gönderiyi kontrol edin.

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

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 <path to output dir> --no-res --no-src --no-imports

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

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

Enjarify, Dalvik bytecode'u Java bytecode'a ç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

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

Fernflower, analitik bir decompiler'dır ve kaynak koddan inşa edilmesi gerekir. İnşa ettikten 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

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

procyon ile basit bir decompilation için:

  • Bir JAR dosyasını belirtilen dizine decompile edin: procyon -jar "app.jar" -o "output_directory"