Файл 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 или подмножество его функций, в противном случае вам придется пересобрать его самостоятельно.

Другие вопросы по тегам