В этой статье мы познакомимся с работой программы Apktool – редкого в своём роде инструмента по тестированию APK ресурсов для приложений под ОС Андроид. Мы с вами установим Apktool в Кали Линукс и Windows и скачаем/установим тренировочное приложение для применения программы. Так что подробности работы самой утилиты, а также того, с чем придётся работать, я решил всё-таки разместить в следующей статье.
- Что такое Аpktool?
- Она уже есть в Кали Линукс
- Как установить Аpktool в Windows?
- Установка уязвимого приложения для “потренироваться”: DIVA
Что такое Apktool?
Apktool представляет собой программу, входящую в список инструментов Реверсивной Инженерии (обратной разработки, а попросту – копирования) ресурсов Андроид-приложений (APK – Android Package Kit). Этот инструмент позволяет расшифровывать APK-проекты, перехватывая его функции на лету, изменяя под собственные нужды, и формировать уже обновлённый APK файл. Для работы с Apktool требуется среда Java 7 (JRE 1.7) и новее. Этот инструмент одинаково идёт из-под Linux и Windows. Инструмент способен на многое, среди главных же его функций можно выделить:
- расшифровка ресурсов Андроид
- переформирование расшифрованных ресурсов с приведением к бинарному виду APK
- компоновка и конечная реализация APK в зависимости от механизма источника
- реализация непрерывности (перманентности) поставленных задач
Что стоит за этими заумными словами, вы скоро поймёте, а пока рассмотрим вопрос, где и как установить всё, что понадобится для знакомства с инструментом.
Apktool в Linux
В Кали Линукс инструмент уже существует, и следующей командой вы можете проверить номер установленной версии:
apktool -version
Справку по командам легко получить, набрав название в терминале. Сразу короткие пояснения по-русски:
Apktool в Windows
Утилита поставляется и в Windows, однако работа с подобными инструментами подразумевает использование java-среды, да и процесс установки потребует внимания. Так что лучше прямо сейчас проверить версию Java:
java -version
Однако, скорее всего, вы увидите сообщение, которое гласит, что Windows не понимает о чём речь:
Тогда устанавливаем Java в Windows по рекомендациям в статье. Процесс недолгий. Сразу после установки отправляемся за версией Apktool для Windows. Справка по и файлы установки живут здесь. Но я вам немного помогу:
- качаем у меня аpktool в архиве zip, распакуйте на Рабочий стол, НЕ ЗАПУСКАЯ
- качаем с офсайта последнюю версию аpktool-2 (она всегда вверху списка):
- как бы он не назывался, вы должны присвоить ему имя apktool.jar. (он будет фигурировать в будущих командах именно под этим названием):
- оба файла (apktool.bat и apktool.jar) копируем и отправляем в системную папку C:\Windows
- теперь открываем cmd от имени админа и вводим команду
apktool
Если всё правильно сделано, вы увидите справку (программа установлена):
Тренируемся на DIVA (Чертовски Беззащитный и Уязвимый APK)
Инструмент, как указывалось, предназначен для работы с APK-файлами. APK – это формат исполняемых файлов-приложений (программ) для ОС Андроид. Он представляет из себя обычный архив, открывающийся доступным zip-ом. Если вы загляните внутрь, то увидите список, характерный для многих APK. Это classes.dex, META-INF, AndroidManifest.xml, resources.arsc и т.д. и т.п. Однако заглянуть внутрь этих файлы абы чем не получится – они не допускают редактирования с помощью какого-нибудь там Блокнота. Вот здесь и вступает в дело Apktool.
Но чтобы не учиться плавать по книжке, возьмём шаблонный APK файл, который поможет познакомиться с типовым APK поближе. Для этой цели индийские товарищи предложили APK проекта DIVA, который можно скачать для прямой установки в Кали командой:
git clone https://github.com/payatu/diva-android
или в форме zip-а:
В Кали за нас всё сделает терминал; если вы продолжаете работать в Windows, я приготовил вам готовый файл (чтобы не рыскать):
скачать DIVA для Аpktool в Windows
Распаковывайте из архива файл diva-beta.apk куда угодно. Содержимое файла любого файла .apk в общих чертах понятно любому архиватору. Однако работа с конкретными файлами, как уже говорилось, доступна немногим. Так что открываем файл с помощью Аpktool из командной строки в формате:
apktool d полный-путь-к-diva-beta.apk
Так, у меня diva-beta.apk лежит на Рабочем столе, а значит команда будет выглядеть так:
Появилось окно с процессом декодирования параметров ресурса. На папку с файлами можно взглянуть в той же Windows\System32:
Будьте на связи. Успехов.
Отличное руководство. Но у меня после всех действий все равно была ошибка
**************
S: WARNING: Could not write to (C:\Users\User.HOMESERVER\AppData\Local\apktool\framework), using C:\Users\0DF1~1.HOM\AppData\Local\Temp\ instead…
*************
Лечится созданием папок apktool и framework по выше указанному пути.
И тем кто не хочет забивать (Windows\System32:) декомпиллированным apk,
в команде apktool d полный-путь-к-diva-beta.apk ,добавьте полный путь к своему исходному каталогу. apktool d
Все получилось.
Здравствуйте, все сделал как написано, но в cmd ввожу apktool и выводится какая то фигня, что её нет.
Здравствуйте. А как упаковать файлы назад.
Команды в Линукс и Windows примерно одинаковы:
./apktool b [имя-папки-с-файлами] [apk файл.apk]
в Windows
apktool b [имя-папки-с-файлами] [apk файл.apk]
Учтите, что оригинальная подпись приложения при переформировании аннулируется.