Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

dex2jar: https://github.com/pxb1988/dex2jar

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

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

Ответ 2

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

enter image description here

=========

РЕДАКТИРОВАТЬ: С апреля 2017 года появился новый инструмент с открытым исходным кодом, разработанный Google, который предназначен для того, чтобы делать именно то, что мы искали => https://github.com/google/android-classyshark

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

Во-вторых,

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

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

У него есть что-то делать с обфускацией кода, я думаю.

Ответ 6

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

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