Как посмотреть исходный код программы Андроид

Содержание

Используйте AndroidStudio для просмотра и отладки исходного кода Android

Используйте AndroidStudio для просмотра и отладки исходного кода Android

  • Используйте AndroidStudio для просмотра и отладки исходного кода Android
  • 0. Базовая среда
  • Операционная система
  • 2. Java
  • 3. Исходный код Android
  • Инициализировать среду компиляции
  • AndroidP терминал проверяет исходный код
  • AndroidO терминал проверить исходный код
  • Начальная настройка AndroidStudio
  • Импорт исходного кода
  • 1. Добавьте следующий код в конец файла /etc/sysctl.conf:
  • 2. Затем выполните в терминале следующую команду:
  • 1. Добавьте точку останова
  • 2. Нажмите кнопку «Присоединить отладчик к процессу Android» на панели инструментов.
  • 3. Выберите программу для отладки-> OK
  • 4. Отладка, когда проект работает нормально

Используйте AndroidStudio для просмотра и отладки исходного кода Android

Будь то на работе или если мы изучаем Android самостоятельно, мы всегда будем использовать исходный код Android. Без средств разработки мы не сможем отлаживать и писать код, а AndroidStudio может компилировать и отлаживать исходный код.

Как ВЗЛОМАТЬ приложение и получить ИСХОДНЫЙ КОД программы? [Reverse engineering, JetBrains dotPeek]

0. Базовая среда

Операционная система

Прежде всего, нам нужна операционная система Linux, которую нельзя скомпилировать непосредственно под Windows. Здесь я использую Deepin, и работа Ubuntu должна быть такой же, как и у меня. Если у вас только компьютер с Windows, настоятельно рекомендуется использовать Docker для завершения И не используйте виртуальные машины.

2. Java

Java может использовать 1.8, в этой статье компилируется Android-P, и в зависимости от версии Android требуемая среда Java также может немного отличаться

3. Исходный код Android

Загрузка исходного кода не является предметом данной статьи, и я не буду вдаваться в подробности. Рекомендуется использовать источник Цинхуа для скачивания. Как скачать, URL написан более подробно:Зеркальная станция с открытым исходным кодом университета Цинхуа

1. Скомпилируйте исходный код

Прежде чем импортировать проект в Android Studio, лучше сначала скомпилировать весь базовый код, чтобы убедиться, что у нашего кода и среды разработки нет проблем, а во-вторых, мы можем генерировать R-файлы путем компиляции.

Инициализировать среду компиляции

source build/envsetup.sh

Здесь нужно отметить одну вещь,Убедитесь, что ваш терминал bash или zshПоскольку скрипт компиляции Android только гарантирует совместимость с этими двумя, если это рыба или что-то еще, вам нужно вручную переключить его, и zsh поддерживается только AndroidP, а также поддерживает bash из AndroidO. Я компилировал AndroidO из-за использования Зш и натолкнулся на некоторые ямы

Как посмотреть исходный код android приложения? Декомпиляция .apk файла (реверс инжиниринг)

AndroidP терминал проверяет исходный код

function validate_current_shell() < local current_sh=»$(ps -o command -p $$)» case «$current_sh» in *bash*) function check_type() < type -t «$1»; >;; *zsh*) function check_type() < type «$1»; >enable_zsh_completion ;; *) echo -e «WARNING: Only bash and zsh are supported.nUse of other shell would lead to erroneous results.» ;; esac >

AndroidO терминал проверить исходный код

if [ «x$SHELL» != «x/bin/bash» ]; then case `ps -o command -p $$` in *bash*) ;; *) echo «WARNING: Only bash is supported, use of other shell would lead to erroneous results» ;; esac fi

Выберите цель компиляции

Перед компиляцией нам также нужно выбрать цель компиляции. Так называемая цель компиляции — это то, на каком устройстве будет работать сгенерированное изображение, например, работаете ли вы на телефоне Pixel или на виртуальной машине.
Команда :

lunch

Команда ланча выведет список всех поддерживаемых типов компиляции, а затем введите серийный номер, чтобы выбрать

Здесь мы выбираем 28 aosp_x86_64-eng и компилируем версию для x86.

Как достать исходники из android приложения?

Каким образом можно достать исходные файлы android приложения( картинки, музыку, шрифты. ).
Пробовал через архиватор открывать, а там есть только файлы с расширением .ddx или .ddv с очень странными названиями.

  • Вопрос задан более трёх лет назад
  • 17005 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 4

Kleindberg

Full stack

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

Читайте также:
Как включить компьютер с помощью программы

Ответ написан более трёх лет назад
Нравится 1 2 комментария

Топикстартеру похоже ресурсы/ассеты нужны, а не код. Причем здесь дизассемблирование или декомпиляция?

Kleindberg

VZVZ: Наоборот, он пытается извлечь файлы из APK.
Reverse-Engineer, Software Developer, Architect

Что за приложение? Наверно, это игра, в ней какой-то движок, а это формат его файлов. Нужно гуглить эти расширения, этот движок. А если реально никакой инфы толком о них, то HEX-редактором попытаться их исследовать и/или копать саму игру: если в ней нужный код написан на Java, то юзать fernflower и jd-gui (и smali еще можно — он вернет асм, но зато без ошибок), а если на C++ (лежит в папке libs не то lib) — то IDA Pro + Hex-Rays.

Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать

Maxsior

Есть много декомпиляторов для apk-пакетов, надо поискать и найти удобный для себя инструмент
Я пользуюсь ShowJava decompiler и APK Manager

Ответ написан более трёх лет назад

Причем тут декомпиляция джавы, если ему надо извлечь содержимое из ресурса/ассета непонятного формата? Сам ресурс он уже извлек, но тот имеет непонятный формат, не png какой-нибудь.

Maxsior

VZVZ: надо писать тогда в вопросе конкретно, а то так фиг поймёшь, а формат мультивьюверами какими-нибудь надо прогнать, ну или старым-добрым методом тыка

Источник: qna.habr.com

Есть ли способ получить исходный код из файла APK?

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

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

ОТВЕТЫ

Ответ 1

Простой способ: используйте онлайн-инструмент http://www.javadecompilers.com/apk, загрузите apk и получите исходный код.

Процедура декодирования .apk файлов, пошаговый метод:

Шаг 1:

  1. Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
  2. Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т.д. На этом этапе вы можете видеть графические объекты, но не файлы XML и Java, поэтому продолжайте.

Шаг 2:

  1. Теперь распакуйте этот файл .zip в ту же папку (или NEW FOLDER).
  2. Скачайте dex2jar и распакуйте его в ту же папку (или в NEW FOLDER).
  3. Переместите файл classes.dex в папку dex2jar.
  4. Теперь откройте командную строку и измените каталог на эту папку (или NEW FOLDER). Затем напишите d2j-dex2jar classes.dex (для терминала Mac или Ubuntu напишите ./d2j-dex2jar.sh classes.dex ) и нажмите клавишу ввода. Теперь у вас есть файл classes.dex.dex2jar в той же папке.
  5. Загрузите декомпилятор java, дважды щелкните jd-gui, щелкните открытый файл и откройте файл classes.dex.dex2jar из этой папки: теперь вы получаете файлы классов.
  6. Сохраните все эти файлы классов (в jd-gui выберите Файл → Сохранить все источники) под именем src. На этом этапе вы получаете исходный код Java, но файлы .xml по-прежнему не читаются, поэтому продолжайте.

Шаг 3:

Теперь откройте еще одну новую папку

  1. Поместите в файл .apk, который вы хотите декодировать
  2. Загрузите последнюю версию apktool и окно установки apktool (обе можно скачать по одной и той же ссылке) и поместите их в одну папку
  3. Откройте командное окно
  4. Теперь запустите команду как apktool if framework-res.apk (если у вас ее нет, получите ее здесь) и затем
  5. apktool d myApp.apk (где myApp.apk обозначает имя файла, который вы хотите декодировать)

теперь вы получаете папку с файлами в этой папке и можете легко читать файлы apk xml.

Шаг 4:

Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обе новые папки) в одну

и наслаждайтесь исходным кодом.

Ответ 2

Это альтернативное описание — на всякий случай, когда кто-то застрял над описанием выше. Выполните следующие шаги:

  • скачать apktool.bat (или apktool для Linux) и apktool_.jar из http://ibotpeaches.github.io/Apktool/install/
  • переименуйте файл jar сверху до apktool.jar и поместите оба файла в одну папку
  • откройте окно dos ( cmd.exe ) и перейдите в эту папку; убедитесь, что установлена ​​среда Java (для Linux также проверьте заметки относительно необходимых библиотек)
  • Начало: apktool decode [apk file] Промежуточный результат: файлы ресурсов, AndroidManifest.xml
  • распаковать файл APK с распаковщиком по вашему выбору Промежуточный результат: classes.dex
  • скачать и извлечь dex2jar-0.0.9.15.zip из http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zipq=
  • перетащите classes.dex на dex2jar.bat (или введите dex2jar.bat classes.dex в поле DOS, для Linux используйте dex2jar.sh ) Промежуточный результат: classes_dex2jar.jar
  • unpack classes_dex2jar.jar (может быть необязательным в зависимости от используемого декомпилятора)
  • декомпилируйте ваши файлы классов (например, JD-GUI или DJ Decompiler) Результат: исходный код

Примечание: не разрешается декомпилировать пакеты сторонних поставщиков; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, полученный код, скорее всего, будет запутан.

Ответ 3

В то время как вы можете декомпилировать ваш файл APK , вы, вероятно, столкнетесь с одной большой проблемой:

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

Читайте также:
Программа которая снимает галочки при установке программ

К сожалению, такие вещи убили много проектов.
В будущем я настоятельно рекомендую изучить систему управления версиями, например CVS, SVN и git и т.д.

и как создать резервную копию.

Ответ 4

Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.

Ответ 5

apktool — лучшая вещь, которую вы можете попробовать. Я сохранил некоторые XML с ним, но, честно говоря, я не знаю, как это будет работать с кодом .java.

Я бы порекомендовал вам иметь хранилище кода, даже если вы единственный кодер. Я использую Project Locker для своих собственных проектов. Это дает вам бесплатные репозитории SVN и GIT.

Ответ 6

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

  1. Используйте apktool чтобы получить файлы ресурсов из apk
  2. Используйте dex2jar чтобы получить файл jar, содержащий классы в формате, который понравится Eclipse.
  3. Создайте проект Eclipse, наведите его на файлы ресурсов и новый файл jar
  4. Откройте файл jar утилитой zip и удалите существующие ресурсы
  5. Откройте файл JDGui с JDGui чтобы просмотреть исходный код
  6. Возьмите любой исходный код из JDGui , JDGui его в класс внутри Eclipse и измените его
  7. Удалите этот класс из файла jar (чтобы один и тот же класс не определялся несколько раз)
  8. Запустить его.

Ответ 7

apktool будет работать. Вам даже не нужно знать хранилище ключей, чтобы извлечь исходный код (что немного страшно). Основной недостаток заключается в том, что источник представлен в формате Smali вместо Java. Другие файлы, такие как значок и main.xml, проходят отлично, хотя, возможно, стоит потратить время, чтобы хотя бы восстановить их. В конечном итоге вам, скорее всего, придется перезаписать Java-код с нуля.

Здесь вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.

Ответ 8

Есть несколько способов сделать это:

  1. Используйте функцию «Профиль или Отладка APK» в Android Studio 3.0. Это позволяет открывать и изучать APK в Android Studio. Классы декомпилированы в smali. Ресурсы не извлекаются, и такие вещи, как «Перейти к определению», «Найти все ссылки» и отладка, не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smallidea. android-studioselect-filecode
  2. Используйте jadx. Jadx декомпилирует код в данном APK в исходные файлы Java. jdax-img
  3. Используйте apktool. Apktool — это инструмент командной строки, который извлекает ресурсы и декомпилирует код в smali для данного apk. Вы также можете перекомпилировать, используя apktool. Вот пример этого в действии:

$ apktool d test.apk I: Using Apktool 2.2.4 on test.apk I: Loading resource table. I: Decoding AndroidManifest.xml with resources. I: Loading resource table from file: 1.apk I: Regular manifest package. I: Decoding file-resources. I: Decoding values */* XMLs. I: Baksmaling classes.dex. I: Copying assets and libs. I: Copying unknown files.

I: Copying original files. $ apktool b test I: Using Apktool 2.2.4 on test I: Checking whether sources has changed. I: Smaling smali folder into classes.dex. I: Checking whether resources has changed. I: Building resources. I: Building apk file. I: Copying unknown files/dir.

Ответ 9

Может быть, легко увидеть источник:

В Android Studio 2.3, Build → Analyze APK → Select the apk that you want to decompile .
Вы увидите исходный код.

Ответ 10

Я покажу вам другой способ декомпилировать файлы .apk.

Вы можете выполнить первые 2 шага из » prankul garg». Таким образом, у вас есть еще одна возможность:

Шаг 3 ‘:

Загрузите «JD-GUI» , который легко найти. Откройте файл .jar в файле «jd-gui.exe». (Файл > Открыть файл > ‘нашел ваш файл .jar). После этой процедуры вы можете сохранить все ресурсы в файле .zip.

1st — вам нужно переименовать файл .apk в .zip

2nd — Вы должны декодировать файл .dex (если хотите, декодируйте файл .apk на dex2jar, что возможно)

3rd — вам нужно декодировать .jar файл с JD-GUI

Ответ 11

Ниже ОНЛАЙН:

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

Ответ 12

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

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

Ответ 13

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

Ответ 14

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

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

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

Ответ 15

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

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

Читайте также:
Добавить программу в Андроид авто

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

Ответ 16

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

Есть некоторые продвинутые методы обфускации кода, доступные на рынке, которые испортили код, чтобы затруднить декомпиляцию/понимание. например. Proguard

Ответ 17

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

ФУНКЦИИ

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

ТРЕБОВАНИЯ

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

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

Ответ 18

Я нашел следующее как самый простой метод:

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

Ответ 19

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

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

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

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

Ответ 20

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

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

Это приведет к фактическому коду вашего Java файла.

Ответ 21

в зависимости от вашего состояния, если ваш Android APK:

Условие 1: НЕ затвердевать (от Tencent Legu/Qihoo 360/. )

Выбор1: с помощью онлайн-сервиса

используя www.javadecompilers.com

  • http://www.javadecompilers.com/apk
  • Примечание: внутренне используя Jadx

автоматически декодировать из АПК в исходный код Java

upload файл apk + нажать Run + подождать некоторое время + нажать Download чтобы получить zip + unzip ->

ваш ожидаемый исходный код Java

Choice2: декомпилировать/взломать самостоятельно

Используйте соответствующий инструмент для декомпиляции/взлома самостоятельно:

используйте jadx / jadx-gui конвертировать apk в java sourcecode

скачайте jadx-0.9.0.zip, затем распакуйте в bin/jadx , затем:

  • режим командной строки:
  • в терминальном запуске: jadx-0.9.0/bin/jadx -o output_folder/path_to_your_apk/your_apk_file.apk
  • output_folder покажет декодированные sources и resources
  • sources/com// — ваш ожидаемый java sourcecode
  • дважды щелкните для запуска jadx-0.9.0/bin/jadx-gui (Linux jadx-gui.sh /Windows jadx-gui.bat )
  • открыть файл apk
  • это будет автоматическое декодирование → увидеть ожидаемый исходный код Java
  • save all или save as Gradle project

Условие 2: закалка (Tencent Legu/Qihoo 360/. )

основной метод 3 steps :

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

Шаг 1: apk/app to dex

использовать инструмент ( FDex2 /DumpDex) для выгрузки/извлечения (одного или нескольких) файла dex из запущенного приложения

подготовить среду

  • root ed андроид
  • настоящий телефон
  • или эмулятор
  • здесь, используя китайскийNox App Player 夜 夜 安卓 模拟器
  • установить ваш Android APK
    • на телефон или эмулятор
    • Установленный Xposed Installer
      • установить FDex2 /DumpDex в XPposed и включить его
        • Примечание: необходимо перезапустить Xposed, чтобы заставить работать FDex2
        • Адрес загрузки FDex2, китайский:
          • 工具 工具 FDex2-CSDN 下载
          • 链接: https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg提取 码: 3e3t
          • установить ваш Android APK на телефон/эмулятор
          • выкинуть dex из запущенного приложения

            • запустите FDex2 затем щелкните по вашему имени apk, чтобы позже включить/захватить dex
          • (в телефоне/эмуляторе) запустите ваше приложение
          • найти и скопировать весь ресурс apk в /data/data/com/yourCompanyName/yourProjectName
            • в своей корневой папке обычно найдет несколько файлов dex
            • Step2: dex to jar

              используйте инструмент ( dex2jar ), чтобы преобразовать (определенный, содержащий логику приложения) файл dex файл jar

              загрузить dex2jar получил dex-tools-2.1-SNAPSHOT.zip, распаковать получил dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh , затем

              sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

              dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

              Шаг 3: jar to java src

              используйте один из инструментов:

              конвертировать jar в java src

              для преобразования из jar в java src:

              Jadx > Procyon > CRF >> JD-GUI

              поэтому рекомендуем использовать: Jadx / jadx-gui

              • двойной щелчок для запуска jadx-gui
              • открыть файл dex
              • File → save all

              экспортированный источник Java:

              Более подробное объяснение можно посмотреть в моей онлайн-книге китайского учебника:

              • 安卓应用的安全和破解
              • учебный исходный код на github: crifan/android_app_security_crack: 安卓 应用 的 安全 和 破解

              Источник: utyatnishna.ru

              Рейтинг
              ( Пока оценок нет )
              Загрузка ...
              EFT-Soft.ru