До этого проверяли ли вы пакет с открытым исходным кодом?
ot--
.Apk - это просто файл .zip. Но, к сожалению, любая сборка приложения для «релиза», вероятно, будет защищена ProGuard .
Даниэль Лопес
@MatthewRead Оператор спрашивает, может ли он получить код от API, и я ответил, как называется это явление и способы, по крайней мере, предотвратить создание подобного приложения. Он не говорит, как предотвратить получение кода. Так что да, он отвечает на вопрос.
Если вам повезло, и ваш .apkфайл не был защищен Proguard или аналогом, вы можете использовать инструмент APK . Это инструмент для обратного проектирования сторонних, закрытых, бинарных приложений для Android.
Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть графические объекты, но не файлы XML и Java, поэтому продолжайте.
Шаг 2:
Теперь распакуйте этот файл .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 по-прежнему не читаются, поэтому продолжайте.
Шаг 3:
Теперь откройте еще одну новую папку
Поместите в файл .apk, который вы хотите декодировать
Загрузите последнюю версию apktool и окно установки apktool (обе можно скачать по одной и той же ссылке) и поместите их в одну папку
Скачайте framework-res.apk и поместите его в одну папку (этот файл нужен не всем файлам apk, но это не помешает)
Откройте командное окно
Перейдите в корневой каталог APKtool и введите следующую команду:
apktool if framework-res.apk
apktool d myApp.apk (где myApp.apk обозначает имя файла, который вы хотите декодировать)
теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.
Шаг 4:
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обе новые папки) в одну
Ответы:
Даже если ProGuard был использован, вы все равно можете получить некоторые интересные идеи. Вот вопрос StackOverflow с подробным объяснением: Android: получение исходного кода из файла APK . YouTube видео с подробным руководством . И запись в блоге об этом: Как получить исходный код из файла Android APK .
источник
Если вам повезло, и ваш
.apk
файл не был защищен Proguard или аналогом, вы можете использовать инструмент APK . Это инструмент для обратного проектирования сторонних, закрытых, бинарных приложений для Android.источник
Из одной вики сообщества Parnkul Garg в SO :
Процедура декодирования .apk файлов, пошаговый метод:
Шаг 1:
Создайте новую папку и скопируйте файл .apk, который вы хотите декодировать.
Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть графические объекты, но не файлы XML и Java, поэтому продолжайте.
Шаг 2:
Теперь распакуйте этот файл .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 по-прежнему не читаются, поэтому продолжайте.
Шаг 3:
Теперь откройте еще одну новую папку
Поместите в файл .apk, который вы хотите декодировать
Загрузите последнюю версию apktool и окно установки apktool (обе можно скачать по одной и той же ссылке) и поместите их в одну папку
Скачайте framework-res.apk и поместите его в одну папку (этот файл нужен не всем файлам apk, но это не помешает)
Откройте командное окно
Перейдите в корневой каталог APKtool и введите следующую команду:
apktool if framework-res.apk
apktool d myApp.apk
(где myApp.apk обозначает имя файла, который вы хотите декодировать)теперь вы получаете папку с файлами в этой папке и можете легко читать xml-файлы apk.
Шаг 4:
Это не какой-либо шаг, просто скопируйте содержимое обеих папок (в данном случае обе новые папки) в одну
и наслаждайтесь исходным кодом ...
источник