• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

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

Tundra21_a

Резидент
Сообщения
203
Реакции
220
0 руб.
Привет влми, пишу статью для конкурса

Понадобилось мне зареверсить одно приложение и подумал, почему бы статью об этом не написать?

При реверсинге может возникнуть 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:

  1. Для этого в настройки > о телефоне несколько раз подряд жмём по номеру сборки. Разблокируется режим разработчика
  2. Далее идём в настройки > для разработчиков и ставим галку на Отладка по USB

350986990b585ecdcd748d02a9580069.png


Подключаем телефон к компьютеру, должно высветиться такое окно:

1370ba256e2c5b6db678d5dfe7590317.png



В терминале вводим:
Код:
sudo adb devices
281d8bc13bba4900c9a1366e93419f3a.png

Если есть ваш телефон, то всё ок

Достаём apk файл

Я буду показывать на примере BlueBorne Vulnerability Scanner. Он есть в гугл плей

Установим приложение:


adf868ab667b803c1f92e81972e18665.png


Далее в терминале:
Код:
sudo adb shell
su
ls /data/app

b25a853e9792c825d9f5c6b6f91f1b73.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

a9a92dd7b35f51794bc3ab0c3aea158c.png


Декомпилируем

Нам понадобится apktool для декомпиляции и dex2jar для вытаскивания кода (оба есть по умолчанию в Kali)

Декомпилируем:
Код:
sudo apktool -r -s d base.apk

В созданной нам понадобится classes.dex (вся логика программы). Получаем .JAR:
Код:
d2j-dex2jar -r -ts classes.dex
На выходе получаем classes-dex2jar.jar, который можно распаковать


Я пользуюсь jd-gui для просмотра:


8f8a03632cf5ed010ed88df3db61d6b3.png
 
Последнее редактирование:

danaforevr

питонист

danaforevr

питонист
Резидент
Сообщения
269
Реакции
516
0 руб.
Жестко. Сейчас бы тупо ctrl+c ctrl+v статью на конкурс отправить :joy:
А как иначе, ты думаешь Найт и Сорик проверяют на копипаст? Ничего подобного, просто копируй самые баянные статьи и победа твоя.
_______________________________________________________________________
Нах танцы с бубном и рут правами, нельзя просто сделать резервную копию приложения через LuckyPatcher/ESпроводник/... ?
Получение
apk занимает 96% всей статьи.
 
Последнее редактирование:
Сверху Снизу