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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Для отримання додаткової інформації про кожен інструмент перегляньте оригінальний пост на 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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.