Введение в этот раздел
«Декомпиляция Apk» выглядит очень высококлассно, но на самом деле это не так: это декомпиляция нашего APK с помощью некоторого программного обеспечения для декомпиляции, чтобы получить исходный код, изображения, ресурсы XML и другие файлы программы; Я не знаю. Делали ли вы когда-нибудь это раньше, видя, что интерфейс чужого приложения сделан очень красиво, или вам нравятся чужие графические материалы, проще говоря, мы можем загрузить чужой APK, а затем изменить имя суффикса на xxx. zip, а затем распакуйте: автор только что распаковал APK:
Мы можем открыть каталог res, чтобы получить материал изображения внутри.
Однако с помощью этого метода можно получить только ресурсы растровых файлов, такие как .png или .jpg. Если это ресурс XML, при его открытии мы обнаружим искаженные символы. И если мы хотим увидеть Java-код APK программа, она тоже не работает, потому что они все запакованы в файлclasss.dex! Но декомпиляция может решить ваши проблемы~ Кроме того, не используйте декомпиляцию для незаконных действий, таких как переупаковка APK-файлов других людей, использование вашей собственной подписи и последующий выпуск их на соответствующий рынок... Кроме того, мы имеем в виду чужие APK-файлы. коды, а не полная копия! ! ! Помнить! !
1. Три инструмента для подготовки
- apktool: получение файлов ресурсов, извлечение файлов изображений, файлов макетов и некоторых файлов ресурсов XML.
- dex2jar: декомпилировать APK в исходный код Java (конвертировать class.dex в файл jar)
- jd-gui: просмотреть конвертированный jar-файл в 2, то есть просмотреть Java-файл.Для удобства читателей вот три упакованы вместе и помещены на облачный диск, и вы можете скачать их, если они вам понадобятся: три инструмента, связанных с декомпиляцией .zip
2. Используйте apktool для декомпиляции APK и получения изображений и ресурсов XML:
После распаковки загруженного apktool мы можем увидеть следующие файлы (игнорируя два csdn, один — декомпилированный apk, а другой — декомпилированный файл):
Затем дважды щелкните cmd.exe, чтобы перейти в командную строку, введите: apktool.bat d csdn.apk и нажмите Enter:
Затем вы увидите созданную папку csdn, содержащую нужные нам ресурсы.
Хорошо, XML-ресурс здесь, верно? Имиджевый материал также доступен!
3. Используйте dex2jar для преобразования class.dex в файл jar:
Разархивируйте загруженную папку dex2jar и скопируйте class.dex из распакованного APK в каталог, где находится dex2jar.bat:
Откройте cmd и перейдите в этот каталог: введите: d2j-dex2jar.batclasses.dex.
Затем мы видим, что создается jar-пакет:
Хорошо, преобразование завершено!
4. Используйте jd-gui для просмотра кода Java в пакете jar:
Хорошо, откройте папку jd-gui
После открытия открываем конвертированный jar-пакет в нашем 3, видим внутри код:
Клиент csdn не путает код... Может это в духе опенсорса, давайте изучим код! Вообще говоря, выпуск apk будет перепутан, а затем будет выполнено некоторое шифрование или будет использована сторонняя платформа шифрования, и чаще используется «шифрование любви». Если вам интересно, вы также можете проверить более подробное введение в Baidu!