• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Статья Декомпиляция android-приложений

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?
Installing-Apktool-for-Reverse-Engineering-Android-Apps.png

При реверсинге может возникнуть 2 случая:
1. Простой:
У вас на руках есть .apk файл приложения. Можно приступать к реверсу.​
2. Сложный:
Приложение есть только в 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.
Screenshot_2017-09-21-18-52-24.png


Подключаем телефон к компьютеру, должно высветиться такое окно:
Screenshot_2017-09-21-18-53-17.png


Жмём окей. В терминале вводим:
Код:
sudo adb devices
Если есть ваш телефон, то всё ок.
upload_2017-9-21_19-53-38.png


Достаём apk файл.
Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть только в гугл плей.
Установим приложение:
Screenshot_2017-09-21-19-00-53.png

Далее в терминале:
Код:
sudo adb shell
su
ls /data/app
upload_2017-9-21_19-58-42.png

Нам покажет все установленные приложения и их расположение. Как видно, 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
upload_2017-9-21_20-29-36.png


Меня, кстати говоря, сильно удивило, что при установке приложения через гугл плей и установке через apk-файл требуются разные разрешения. Кажется, гугл что-то скрывает...
Screenshot_2017-09-21-19-18-16.png


Декомпилируем.
О декомпиляции APK рассказывал @Vander здесь и здесь, так что вкратце, нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali).
Декомпилируем:
Код:
sudo apktool -r -s d base.apk
В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:
Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распоковать, я пользуюсь jd-gui для просмотра:
upload_2017-9-21_20-10-45.png

На этом всё ;)
[doublepost=1506015657,1506015614][/doublepost]@WebWare Team спойлеры не отображаются, хелп
 

c0mb0

Green Team
02.10.2018
52
19
BIT
13
эххх мне бы с раскрасок и палз детских рекламу убрать :D
internet permission удали, если приложуха могет в офлайн, или в папке /res/layout найди файл xml с тегом <AdView> и поставь android:visibility="gone" или в /res/strings.xml заменить
<string name="banner_ad_unit_id">ca-app-pub-.........</string>
на <string name="banner_ad_unit_id">@null</string>
Инструмент apkstudio-d49d3de-windows.exe
 
  • Нравится
Реакции: i3wm

i3wm

Green Team
31.10.2018
85
45
BIT
0
internet permission удали, если приложуха могет в офлайн, или в папке /res/layout найди файл xml с тегом <AdView> и поставь android:visibility="gone" или в /res/strings.xml заменить
<string name="banner_ad_unit_id">ca-app-pub-.........</string>
на <string name="banner_ad_unit_id">@null</string>
Инструмент apkstudio-d49d3de-windows.exe
спасибо попробуем
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!