Декомпилировать файлы .smali на APK

Я загрузил APK Manager, который позволяет мне распаковывать файлы APK.

Но он только распаковывает его и не декомпилирует файл .smali в .java.

Можно ли декомпилировать .smali в .java?

Solutions Collecting From Web of "Декомпилировать файлы .smali на APK"

Нет, APK Manager декомпилирует файл .dex в .smali и двоичный .xml для читаемого человеком xml.

Последовательность (на основе APK Manager 4.9) равна 22 для выбора пакета, а затем 9 для декомпиляции. Если вы нажмете 1 вместо 9, вы просто распакуете его (полезно, только если вы хотите обмениваться изображениями .png).

Нет инструмента для декомпиляции обратно в .java файлы и, скорее всего, он не будет. Существует альтернатива, которая использует dex2jar для преобразования файла dex в файл .class , а затем использует декомпилятор jar (например, бесплатный jd-gui ) для простого текстового java. Однако этот процесс далеко не оптимален, и он не будет генерировать рабочий код, но он достаточно приличный, чтобы его можно было прочитать.

Dex2jar: http://code.google.com/p/dex2jar/

Jd-gui: http://jd.benow.ca/

Edit: Я знал, что где-то здесь в SO вопрос с очень похожими ответами … декомпиляция DEX в исходный код Java

Dex2jar помогает декомпилировать ваш apk, но не 100%. У вас возникнут проблемы с файлами .smali. Dex2jar не может преобразовать его в java. Я знаю одно приложение, которое может декомпилировать исходные файлы apk и никаких проблем с файлами .smali. Вот ссылка http://www.hensence.com/en/smali2java/

Существует новый инструмент cross plateform (java) и open source, который позволяет вам это сделать, просто проверьте https://bytecodeviewer.com

Введите описание изображения здесь

=========

EDIT: По состоянию на апрель 2017 года появился новый инструмент с открытым исходным кодом, разработанный google, который предназначен для того, чтобы делать то, что мы искали => http://classyshark.com

Моя рекомендация – Virtuous Ten Studio . Инструмент свободен, но они предлагают пожертвование. Он объединяет все необходимые шаги (распаковывая APK, baksmaliing, декомпиляцию и т. Д.) В один простой в использовании процесс импорта на основе пользовательского интерфейса. В течение пяти минут у вас должен быть исходный код Java, меньше, чем требуется для определения параметров командной строки одного из вышеупомянутых инструментов.

Декомпиляция smali на Java – это неточный процесс, особенно если артефакты smali прошли через обфускатор. Вы можете найти несколько декомпиляторов в Интернете, но только некоторые из них по-прежнему поддерживаются. Некоторые из них помогут вам лучше декомпилировать код, чем другие. Читайте «лучше», как в «более понятном», чем другие. Не ожидайте, что обратный инженерный код Java будет компилироваться из коробки. Virtuous Ten Studio поставляется с несколькими бесплатными встроенными декомпиляторами Java, поэтому вы можете легко попробовать различные декомпиляторы (шаг «Создать источник Java»), чтобы увидеть, какой из них дает вам наилучшие результаты, что позволяет вам находить эти декомпиляторы самостоятельно и фигурировать Как их использовать. Среди них CFR, который является одним из немногих свободных и все еще поддерживаемых декомпиляторов.

В качестве вывода вы получаете, среди прочего, структуру папок, которая содержит весь декомпилированный исходный код Java. Затем вы можете импортировать это в IntelliJ IDEA или Eclipse для дальнейшего редактирования, анализа (например, «Перейти к определению», «Поиск использования») и т. Д.

Я второй.

Dex2jar создаст РАБОЧУЮ банку, которую вы можете добавить в качестве источника проекта, с xmls, полученным от apktool.

Однако JDGUI создает файлы .java, которые чаще всего имеют ошибки.

Я думаю, что это связано с обфускацией кода.

Для получения практического представления о преобразовании файла .apk в .java-файлы просто просмотрите видео https://www.youtube.com/watch?v=-AX4NYE-9V8 . Вы получите больше пользы и понимаете ясно. Он четко демонстрирует шаги, которые вам нужны, если вы используете mac OS .

Основное требование для этого. 1. http://code.google.com/p/dex2jar/
2. http://jd.benow.ca/