Имея файл .apk, есть ли способ получить его исходный код?
Имея файл .apk, есть ли способ получить его исходный код?
Ответы:
Даже если ProGuard был использован, вы все равно можете получить некоторые интересные идеи. Вот вопрос StackOverflow с подробным объяснением: Android: получение исходного кода из файла APK . YouTube видео с подробным руководством . И запись в блоге об этом: Как получить исходный код из файла Android APK .
Если вам повезло, и ваш .apk
файл не был защищен Proguard или аналогом, вы можете использовать инструмент APK . Это инструмент для обратного проектирования сторонних, закрытых, бинарных приложений для Android.
Из одной вики сообщества Parnkul Garg в SO :
Процедура декодирования .apk файлов, пошаговый метод:
Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть графические объекты, но не файлы XML и Java, поэтому продолжайте.
Теперь распакуйте этот файл .zip в ту же папку (или NEW FOLDER).
Скачайте dex2jar и распакуйте его в ту же папку (или в NEW FOLDER).
Переместите файл classes.dex в папку dex2jar.
Теперь откройте командную строку и измените каталог на эту папку (или NEW FOLDER). Затем напишите d2j-dex2jar classes.dex
и нажмите Enter. Теперь у вас есть файл classes.dex.dex2jar в той же папке.
Загрузите декомпилятор java , дважды щелкните jd-gui, щелкните открытый файл и откройте файл classes.dex.dex2jar из этой папки: теперь вы получаете файлы классов.
Сохраните все эти файлы классов (в jd-gui выберите Файл -> Сохранить все источники) под именем src. На этом этапе вы получаете исходный код Java, но файлы .xml по-прежнему не читаются, поэтому продолжайте.
Теперь откройте еще одну новую папку
Поместите в файл .apk, который вы хотите декодировать
Загрузите последнюю версию apktool и окно установки apktool (обе можно скачать по одной и той же ссылке) и поместите их в одну папку
Скачайте framework-res.apk и поместите его в одну папку (этот файл нужен не всем файлам apk, но это не помешает)
Откройте командное окно
Перейдите в корневой каталог APKtool и введите следующую команду:
apktool if framework-res.apk
apktool d myApp.apk
(где myApp.apk обозначает имя файла, который вы хотите декодировать)
теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обе новые папки) в одну
и наслаждайтесь исходным кодом ...