Как може да се декомпилират файловете DEX (VM байткод) на Android в съответния изходен код на Java?
Вземете тези инструменти:
Изходният код е доста четим, тъй като dex2jar прави някои оптимизации.
Ето и процедурата за декомпилиране:
Конвертиране на classes.dex в test_apk-debug.apk в test_apk-debug_dex2jar.jar
d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex
Забележка: В машините с Windows всички скриптове
.sh
се заменят със скриптове.bat
.
Отваряне на jar в JD-GUI
Всъщност бих препоръчал да отидете тук: https://github.com/JesusFreke/smali
Той предоставя BAKSMALI, който е най-прекрасният инструмент за обратно инженерство за DEX файлове. Направен е от JesusFreke, човекът, който създаде прочутите ROM-и за Android.