Поскольку ответ Dheeraj Bhaskar
относительно старый, чем много лет назад.
Вот мой последний (2019 год) ответ:
Основная логика
от dex
до java sourcecode
, в настоящее время существует два вида решения:
One Step
: прямое преобразование dex
в java sourcecode
Two Step
: первое преобразование dex
в jar
, второе преобразование jar
в java sourcecode
Одношаговое решение: dex
непосредственно к java sourcecode
Инструменты
Процесс
- загрузка jadx-0.9.0.zip , разархивируйте его, в папке
bin
можно увидеть командную строку jadx
или версию GUI jadx-gui
, дважды щелкните для запуска версии GUI: jadx-gui
- открыть
dex
файл
затем может показать исходный код Java:
File
-> save as gradle project
затем получил исходный код Java:
Двухшаговое решение
Шаг 1: dex
до jar
Инструменты
Процесс
скачать dex2jar zip , распаковать полученный d2j-dex2jar.sh
, затем:
apk
до jar
: sh d2j-dex2jar.sh -f ~/path/to/apk_to_decompile.apk
dex
до jar
: sh d2j-dex2jar.sh -f ~/path/to/dex_to_decompile.dex
пример:
➜ v3.4.8 /Users/crifan/dev/dev_tool/android/reverse_engineering/dex-tools/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.huili.readingclub8825612.dex
dex2jar com.huili.readingclub8825612.dex -> ./com.huili.readingclub8825612-dex2jar.jar
➜ v3.4.8 ll
-rw------- 1 crifan staff 9.5M 3 21 10:00 com.huili.readingclub8825612-dex2jar.jar
-rw------- 1 crifan staff 8.4M 3 19 14:04 com.huili.readingclub8825612.dex
Step2: jar
до java sourcecode
Инструменты
- jd-gui : самый популярный, но код
many
декомпилирует ошибку
- CRF : популярный,
minor
код будет декомпилировать ошибку
- Procyon : популярный,
no
ошибка декомпиляции кода
- Инструмент с графическим интерфейсом на основе
Procyon
- другие
* * Процесс тысяча сто семьдесят три
здесь демо Procyon
конвертировать jar в java исходный код:
скачать procyon-decompiler-0.5.34.jar
затем используя синтаксис:
java -jar /path/to/procyon-decompiler-0.5.34.jar -jar your_to_decompile.jar -o outputFolderName
пример:
java -jar /Users/crifan/dev/dev_tool/android/reverse_engineering/Procyon/procyon-decompiler-0.5.34.jar -jar com.huili.readingclub8825612-dex2jar.jar -o com.huili.readingclub8825612
с использованием редактора VSCode для открытия экспортированного исходного кода, выглядит следующим образом:
Заключение
Правильность преобразования: Jadx
> Procyon
> CRF
> JD-GUI
Рекомендовать использовать: (Одношаговое решение) Jadx
для более подробного объяснения, пожалуйста, обратитесь к моей онлайн китайской электронной книге: 安卓 应用 的 安全 和 破解