Файл classes.dex не содержит мои классы Java
Я разработал приложение в Android Studio и протестировал его на своем телефоне. Я отформатировал свой компьютер и забыл сохранить свой проект где-нибудь. Теперь я хочу вернуть мои исходники. Я получаю APK-файл со своего телефона (используя adb и некоторые другие инструменты).
Я использую dex2jar и декомпилирую свой файл classes.dex, но он не показывает мои собственные классы Java. Можно ли их вернуть?
2 ответа
Вы можете легко декомпилировать его с помощью большого учебника ниже:
https://futurestud.io/tutorials/how-to-decompile-an-android-app-apk
4 простых шага, как показано ниже:
1 - разархивировать вы apk, как вы разархивировать любой почтовый файл
2-найти файлы classes.dex
3-конвертировать их в файл JAR с помощью инструмента dexToJar
4- открыть файл jar с помощью приложения JD-Gui (доступно для windows/ubuntu/mac)
Обычно это делает какой-то обфускатор, такой как Proguard. Это означает, среди прочего, что имена классов ваших классов будут изменены на бессмысленные имена (такие как A/B/C), имена по-прежнему будут отличаться в полном пути пути класса java, например, у вас может быть несколько Классы "A" в разных пакетах, но кроме этого у вас будут эти имена классов несколько раз. В большинстве случаев это не повредит функциональности вашей программы, но усложнит обратный инжиниринг.
Если это ваше приложение, и вы можете перестроить его, вы можете отключить ProGuard или подмножество его функций, в противном случае вам придется пересобрать его самостоятельно.