Tundra21_a
Резидент
Привет влми, пишу статью для конкурса
Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?
Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?
При реверсинге может возникнуть 2 случая
Простой:
- У вас на руках есть .apk файл приложения. Можно приступать к реверсу
- Приложение есть только в googleplay. Придется выковыривать приложение из телефона
Понадобятся root права на андроид
Я начну со второго, а после этого перейдём к реверсу
Настраиваем ADB
Нам понадобится adb на компьютере:
Код:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
После установки необходимо опознавание устройств, в терминале:
Код:
sudo nano /etc/udev/rules.d/51-android.rules
Вставляем, и выдаём права:
Код:
sudo chmod a+r /etc/udev/rules.d/51-android.rules
На android-устройстве нужно включить режим отладки по USB:
- Для этого в настройки > о телефоне несколько раз подряд жмём по номеру сборки. Разблокируется режим разработчика
- Далее идём в настройки > для разработчиков и ставим галку на Отладка по USB
Подключаем телефон к компьютеру, должно высветиться такое окно:
Жмём окей
В терминале вводим:
Код:
sudo adb devices
Если есть ваш телефон, то всё ок
Достаём apk файл
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть в гугл плей
Установим приложение:
Далее в терминале:
Код:
sudo adb shell
su
ls /data/app
Нам покажет все установленные приложения и их расположение
Как видно, BlueBorne Scanner находится по /data/app/com.armis.blueborne_detector-1
Если ввести ls /data/app/com.armis.blueborne_detector-1, то в ответ получим:
Код:
base.apk
lib
base.apk - это и есть приложение
Скопируем его на cd-карту:
Код:
cp /data/app/com.armis.blueborne_detector-1/base.apk /sdcard/
Выходим из android-shell в обычный терминал (2 раза Ctrl+d) и копируем с cd-карты на компьютер:
Код:
sudo adb pull /sdcard/base.apk
Декомпилируем
Нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali)
Декомпилируем:
Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:
Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распаковать
Я пользуюсь jd-gui для просмотра:
Последнее редактирование: