APK decompilers

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

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

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

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

  • Для запуску GUI перейдіть до каталогу bin та виконайте: jadx-gui

  • Для використання з командним рядком декомпілюйте APK за допомогою: jadx app.apk

  • Для вказання каталогу виведення або налаштування параметрів декомпіляції: jadx app.apk -d <шлях до каталогу виведення> --no-res --no-src --no-imports

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

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

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

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

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

  • Для стандартної декомпіляції: java -jar ./cfr.jar "app.jar" --outputdir "каталог_виведення"

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

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

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

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

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

Для простої декомпіляції з procyon:

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

Last updated