APK decompilers

Reading time: 3 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Для отримання додаткової інформації про кожен інструмент перегляньте оригінальний пост на https://eiken.dev/blog/2021/02/how-to-break-your-jar-in-2021-decompilation-guide-for-jars-and-apks/#cfr

JD-Gui

Як піонер GUI Java декомпілятора, JD-Gui дозволяє вам досліджувати Java код у файлах APK. Його легко використовувати; після отримання APK просто відкрийте його за допомогою JD-Gui, щоб перевірити код.

Jadx

Jadx пропонує зручний інтерфейс для декомпіляції Java коду з Android додатків. Рекомендується за його простоту використання на різних платформах.

  • Щоб запустити GUI, перейдіть до каталогу bin і виконайте: jadx-gui
  • Для використання з командного рядка декомпіліруйте APK за допомогою: jadx app.apk
  • Щоб вказати каталог виводу або налаштувати параметри декомпіляції: jadx app.apk -d <path to output dir> --no-res --no-src --no-imports

GDA-android-reversing-Tool

GDA, інструмент лише для Windows, пропонує розширені функції для реверс-інжинірингу Android додатків. Встановіть і запустіть GDA на вашій системі Windows, а потім завантажте файл APK для аналізу.

Bytecode-Viewer

З Bytecode-Viewer ви можете аналізувати файли APK, використовуючи кілька декомпіляторів. Після завантаження запустіть Bytecode-Viewer, завантажте ваш APK і виберіть декомпілятори, які ви хочете використовувати для одночасного аналізу.

Enjarify

Enjarify перетворює Dalvik байт-код у Java байт-код, що дозволяє Java інструментам аналізувати Android додатки більш ефективно.

  • Щоб використовувати Enjarify, запустіть: enjarify app.apk Це генерує еквівалент Java байт-коду наданого APK.

CFR

CFR здатний декомпілірувати сучасні Java функції. Використовуйте його наступним чином:

  • Для стандартної декомпіляції: java -jar ./cfr.jar "app.jar" --outputdir "output_directory"
  • Для великих JAR файлів, налаштуйте виділення пам'яті JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"

Fernflower

Fernflower, аналітичний декомпілятор, вимагає компіляції з виходу. Після компіляції:

  • Декомпіліруйте JAR файл: java -jar ./fernflower.jar "app.jar" "output_directory" Потім витягніть .java файли з згенерованого JAR за допомогою unzip.

Krakatau

Krakatau пропонує детальний контроль над декомпіляцією, особливо для обробки зовнішніх бібліотек.

  • Використовуйте Krakatau, вказуючи шлях до стандартної бібліотеки та JAR файл для декомпіляції: ./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"

procyon

Для простого декомпілювання з procyon:

  • Декомпіліруйте JAR файл у вказаний каталог: procyon -jar "app.jar" -o "output_directory"

frida-DEXdump

Цей інструмент можна використовувати для вивантаження DEX запущеного APK в пам'яті. Це допомагає обійти статичну обфускацію, яка видаляється під час виконання програми в пам'яті.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks