APK decompilers
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Для отримання додаткової інформації про кожен інструмент перегляньте оригінальний пост з 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 "output_directory"
Для великих JAR файлів, налаштуйте виділення пам'яті JVM: java -Xmx4G -jar ./cfr.jar "app.jar" --outputdir "output_directory"
Fernflower, аналітичний декомпілятор, вимагає компіляції з виходу. Після компіляції:
Декомпіліруйте JAR файл: java -jar ./fernflower.jar "app.jar" "output_directory"
Потім витягніть .java
файли з згенерованого JAR за допомогою unzip
.
Krakatau пропонує детальний контроль над декомпіляцією, особливо для обробки зовнішніх бібліотек.
Використовуйте Krakatau, вказуючи шлях до стандартної бібліотеки та JAR файл для декомпіляції: ./Krakatau/decompile.py -out "output_directory" -skip -nauto -path "./jrt-extractor/rt.jar" "app.jar"
Для простого декомпілювання з procyon:
Декомпіліруйте JAR файл у вказаний каталог: procyon -jar "app.jar" -o "output_directory"
Цей інструмент можна використовувати для вивантаження DEX запущеного APK в пам'яті. Це допомагає обійти статичну обфускацію, яка видаляється під час виконання програми в пам'яті.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)