Есть ли способ получить исходный код из файла APK? - PullRequest
1178 голосов
/ 29 августа 2010

Жесткий диск на моем ноутбуке просто сломался, и я потерял весь исходный код приложения, над которым я работал последние два месяца. Все, что у меня есть, это файл APK, который хранится в моем письме, когда я отправил его другу.

Есть ли способ извлечь мой исходный код из этого файла APK?

Ответы [ 21 ]

6 голосов
/ 10 июня 2017

Ниже ONLINE инструмент:

http://www.javadecompilers.com/apk

это делает ВСЕ одним кликом: декомпилировано .java файлы + ресурсы + xml (в одном .zip файле) с очень хорошим декомпилятором (jadx возвращает код Java в местах / функциях, где другие компиляторы возвращают комментарии внутри функция типа "невозможно декомпилировать" или какой-нибудь ассемблер / машинный код Android)

6 голосов
/ 11 сентября 2017

Этот сайт https://www.apkdecompilers.com/ сделал это автоматически.

Сначала я попробовал сайт, упомянутый в принятом ответе, но он мне не помог.

5 голосов
/ 04 октября 2017

Я лично рекомендую Показать Java Android App , чтобы получить исходный кодВы можете скачать его из игрового магазина или из здесь

4 голосов
/ 15 мая 2016

Apktool для реверс-инжиниринга сторонних, закрытых, бинарных приложений для Android.

Он может декодировать ресурсы почти до первоначальной формы и восстанавливать их после внесения некоторых изменений.

Позволяет пошагово отлаживать код smali. Кроме того, это облегчает работу с приложением благодаря проектной структуре файлов и автоматизации некоторых повторяющихся задач, таких как создание apk и т. Д.

http://ibotpeaches.github.io/Apktool/

3 голосов
/ 16 ноября 2017

Вы можете попробовать DexPatcher . Он даже интегрируется с Android Studio. Он использует Apktool и Dex2Jar для внутреннего использования.
Вы можете использовать эти инструменты независимо друг от друга. Apktool декомпилирует apk и извлекает файлы .dex, которые затем можно конвертировать в jar с помощью Dex2Jar. Jar можно декомпилировать с помощью JD-GUI . Вы можете увидеть код Java с помощью этого инструмента. Хотя сходство декомпилированного кода с реальным кодом не может быть гарантировано. На рынке есть несколько продвинутых кодовых обфускаций инструментов, которые портят код, затрудняя его декомпиляцию / понимание. например. Proguard

3 голосов
/ 11 июля 2017

apktool это путь.Онлайн-сервис apktool также существует: http://www.javadecompilers.com/apktool

Очевидно, что существуют некоторые ограничения из-за службы «онлайн-характера»: вы можете извлекать и исследовать ресурсы и файл манифеста, но невозможно перекомпилировать приложениена данный момент.

Тем не менее, это простой способ «открыть» приложение для Android.

2 голосов
/ 10 мая 2019

Студия Android предлагает вам проанализировать любой файл apk.

1 - В меню сборки выберите параметр анализировать apk и выберите файл apk. 2 - В результате вы получите файл classes.dex и другие файлы. 3 - Нажмите на classes.dex, который предоставит вам список папок, пакетов, библиотек и файлов. 4 - Из настроек андроид студии установите плагин под названием «Dex to Jar» 5 - щелкните по любому файлу активности вашего извлеченного проекта и выберите dex to jar в меню сборки.

В результате вы получите фактический код вашего Java-файла.

Приветствие.

1 голос
/ 27 февраля 2019

Для этого есть приложение, которое обычно занимает всего несколько кликов, и все готово. https://github.com/Nuvolect/DeepDive-Android

  1. Выберите приложения, в разделе «Установленные приложения» выберите свое приложение. Если это не так там вы можете загрузить APK.
  2. Выберите «Извлечь APK»
  3. Выберите "Распаковать APK"
  4. Выберите «Декомпилировать с помощью Jadx». Это может занять несколько секунд или несколько минут в зависимости на скорости вашего устройства

После этого вы можете просмотреть исходный код, загрузить его на другой компьютер с помощью elFinder или выполнить поиск по нему с помощью Lucene.

В дополнение к Jadx есть декомпиляторы CFR и Fernflower.

1 голос
/ 26 февраля 2019

В качестве простейшего метода я нашел следующее:

  1. Переименуйте ваш app.apk в app.zip (Изменить расширение с apk на zip)
  2. Распакуйте zip-файл в папку
  3. Используйте инструмент JADX для чтения исходного кода, представленного в файле classes.dex.
1 голос
/ 16 февраля 2019

Самый простой способ - использовать декомпилятор Apk OneClick. Это пакет инструментов для декомпиляции и дизассемблирования APK (Android-пакетов).

ОСОБЕННОСТИ

  • Все функции интегрированы в контекстное меню Windows.
  • Декомпилировать классы APK в исходные коды Java.
  • Разберите APK, чтобы смалить код и декодировать его ресурсы.
  • Установите APK на телефон, щелкнув правой кнопкой мыши.
  • Перекомпилируйте APK после редактирования кода и / или ресурсов. Во время перекомпиляции:
  • Оптимизация изображений PNG
  • Войти apks
  • Zipalign

ТРЕБОВАНИЯ

Должна быть установлена ​​Java Runtime Environment (JRE).

Вы можете скачать его по этой ссылке Apk OneClick Decompiler

Наслаждайся этим.

...