Как перекомпилировать Jar на dex, используя телефон android? - PullRequest
0 голосов
/ 27 января 2020

Я извлек файл Dex, используя редактор Apk, и распаковал его, используя Jadex. Теперь я хочу перекомпилировать Jar в Dex, используя android Телефон может мне помочь?

1 Ответ

1 голос
/ 27 января 2020

Полагаю, вы имеете в виду Jadx , а не Jadex.

В Jadx есть команда для сохранения декомпилированного проекта как проекта gradle.

Проект Gradle можно загрузить в Android studio. И теоретически вы можете затем перекомпилировать приложение и вернуть приложение, которое работает идентично, как и оригинальное приложение.

Практически это не работает в 99,9% всех случаев, потому что:

  1. Jadx не удалось декомпилировать некоторые методы.
  2. Сгенерированный код содержит незначительные проблемы, которые необходимо исправить вручную
  3. Очень сложные функции могут быть декомпилируемыми, но код немного изменился и, следовательно, не совсем работает как исходный байт-код.

В общем случае декомпиляция приложения с использованием Jadx - это совершенно неправильный подход, если вы хотите перекомпилировать его. На мой взгляд, самый надежный способ декомпилировать и перекомпилировать приложение - это apktool . В декомпилированных источниках smali вы можете изменить методы, которые вы хотите изменить. Для лучшего понимания кода вы также можете декомпилировать соответствующие классы / методы в Jadx.

Для упрощенного построения фрагментов smali вы можете использовать Android Studio: использовать части кода, декомпилированные в Jadx, скопировать его в проект Android Studio, скомпилировать и открыть скомпилированный файл APK с помощью Jadx. Выберите класс, содержащий код, откройте для него вкладку samli и скопируйте из него код smali. Это обычно проще, чем программирование непосредственно на Smali. См. Также этот вопрос: Конвертировать. Java файл в файл .Smali

...