Полная декомпиляция Android приложений | [Декомпиляция приложений в исходный Java код]



Реп: (152)
Полная декомпиляция Android приложений, декомпиляция приложений в исходный Java код

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

И так, нам потребуется:
dex2jar
Java Decompiler
ApkTool

Все приложения являются бесплатными, мультиплатформенными и открытыми (кроме Java Decompiler, у него закрыт исходный код).
Их можно скачать с официального сайта.

Инструкцию буду проводить для ОС Windows.
  1. Качаем dex2jar-0.0.9.8.zip (номер версии может изменяться) и извлекаем все файлы в желаемую папку, например D:\Decompile .
  2. Качаем Java Decompiler, я использовал JD-GUI и извлекаем файлы для удобства в ту же папку, куда и dex2jar.
  3. Качаем apktool и apktool-install-windows-r04-brut1.tar.bz2 и извлекаем файлы уже в системную папку. По умолчанию C:\Windows. (Не забываем скачать второй архив)
  4. Берем нужный apk файл и кладем в папку с dex2jar и Java Decompiler. В примере приведу декомпиляцию приложения Прикрепленный файлCalculator.zip ( 66.18 КБ )
    . (надо извлечь из архива).
  5. Открываем Командную строку (Обработчик команд Windows) в вышеупомянутой папке (В папке по пустому месте при зажатой кнопке Shift нажимаем правую кнопку мыши и выбираем Обработчик команд Windows).
  6. Вводим команду dex2jar Calculator.apk и если все прошло хорошо, в той же папке появится файл Calculator.apk.dex2jar.jar
  7. Запускаем jd-gui и открываем полученный на предыдущем шаге файл. (На Windows 7 открывать с правами администратора и с совместимостью Windows XP SP3)
  8. Выбираем пункт меню File-Save All Sources и сохраняем.
  9. Извлекаем полученный zip архив.
  10. Помещаем полученную папку в папку src (надо предварительно создать).(Что бы получилась примерно такая структура D:\Decompile\Calculator\src\com\android)
  11. Опять же в командной строке вводим команду apktool d Calculator.apk Calculator, где Calculator.apk-имя пакета, Calculator-папка для декомпиляции
  12. Если все хорошо, тогда в указанной папке будут исходники в двух форматах (java и smali), ресурсы и файлы AndroidManifest.xml, apktool.yml
  13. Все готово, исходники получены. Правда после декомпиляции в коде есть, можно сказать, ошибки, я заметил пока только что вместо true и false стоят 1 и 0 соответственно.


P.S. Если хочется импортировать полученный код в IDE Eclipse (File-Import), тогда положите содержимое этого архива(Прикрепленный файлEclipse.zip ( 1.44 КБ )
) в папку с проектом, предварительно изменив на третьей строке <name>PROJECT NAME</name> PROJECT NAME на желаемое название, в моем примере «Calculator» в файле .project
P.P.S. Если apk файл был пропущен при компиляции через обфускатор (proguard), тогда полученный код будет плохо читаем.
Источник: http://boomik.ru/polnaya-dekompilyaciya-android-prilozhenij

Сообщение отредактировал KEEPERekb - 09.06.15, 14:51
Причина редактирования: ссылка



Реп: (0)
* Azathtot, где можно анализировать файл?



Реп: (1539)
* VMOS Pro,
На вашем компьютере, с помощью лучшего анализатора - человеческого мозга.



Реп: (0)
* Azathtot, очень смешно анекдот



Реп: (1539)
* VMOS Pro,
Это не анекдот, эта правда. Открыли файл в hexview, посмотрели структуру, поискали сигнатуры, признаки контейнера.
Не помогло - начали изучать код, который с ним работает и т.д.



Реп: (38)
Azathtot @ 27.06.22, 21:43 *
Открыли файл в hexview, посмотрели структуру, поискали сигнатуры, признаки контейнера.

не не не :)
надо же, что бы нажал кнопку и всё заработало! :)



Реп: (11)
Есть умные люди, знающие Java и Smali?
Сам я тупой как валенок, но есть проблема которую нужно решить: помогите убрать защиту приложения от эмулятора.
Прикрепляю декомпилированый файл.

Прикрепленный файлNxEmulatorInfo.rar ( 4.55 КБ )


Сообщение отредактировал RainToNiGHT - 27.08.22, 02:12



Реп: (336)
Всем привет! Подскажите пожалуйста, как можно обойти ошибку SharedUserID? Андроид 11, рут есть.
Прикрепленное изображение



Реп: (1539)
* Intel Oxide,
Собрать свою прошивку. Ну или переподписать все приложения и фреймворк своей подписью



Реп: (-2)
Ребята есть приложение Premise оно даёт задание (сфоткать объект на местности) как можно сделать подмену GPS если программа определяет программы для эмуляции геоположения?



Реп: (7)
Не получается поменять иконку приложения, стандартные методы не помогли, старая иконка так и продолжает отображаться после установки в самом приложении и соответственно в уведомлении. Были удалены ic_launcher_background.xml и ic_launcher_foreground.xml (папка drawable) с предварительной корректировкой public.xml (папка values), все картинки app_icon.png, ic_launcher.png были заменены, но не помогло (в прикреплённом файле APK xml файлы о которых писал выше не менялись). Прошу помочь заменить иконку в данном приложении. Извините если не в той теме написал, но почему-то более подходящей не нашёл

Прикрепленные файлы

Прикрепленный файлMyDots v1.1(17)_src_src.apk ( 6.18 МБ )



Реп: (7)
Или хотя бы подскажите куда копать, помогите найти где может храниться эта старая иконка приложения



Реп: (1539)
iRussian @ 16.12.22, 10:36 *
Или хотя бы подскажите куда копать,

в манифест. Иконки приложения описаны там



Реп: (7)
* Azathtot, та что прописана в manifest я первым делом поменял, но безрезультатно

Добавлено 16.12.2022, 17:24:

android:icon="@drawable/app_icons"
Во всех папках drawable... все иконки app_icons.png я заменил.

Сообщение отредактировал iRussian - 16.12.22, 17:27


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.05.23, 05:39