Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
droidlysis — Автоматизированный инструмент предварительного анализа Android-приложений, который дизассемблирует образцы, извлекает свойства с помощью настраиваемого сопоставления шаблонов и организует вывод для ускоренного реверс-инжиниринга и анализа вредоносных программ. | Kitploit
Инструменты/GitHubGitHub/cryptax/droidlysis
Безопасность AndroidСтатический анализОбратная инженерияСбор информацииАнализ вредоносных программМобильная безопасность
GitHubcryptax/droidlysis

droidlysis

Автоматизированный инструмент предварительного анализа Android-приложений, который дизассемблирует образцы, извлекает свойства с помощью настраиваемого сопоставления шаблонов и организует вывод для ускоренного реверс-инжиниринга и анализа вредоносных программ.

Репозиторий
3114910 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DroidLysis

DroidLysis — это инструмент предварительного анализа Android-приложений: он выполняет повторяющиеся и скучные задачи, которые мы обычно делаем в начале любого реверс-инжиниринга. Он дизассемблирует Android-образец, организует вывод в каталоги и ищет подозрительные места в коде, на которые стоит обратить внимание. Результат помогает реверс-инженеру ускорить первые шаги анализа.

DroidLysis можно использовать для Android-пакетов (apk), исполняемых файлов Dalvik (dex), Zip-файлов (zip), Rar-файлов (rar) или каталогов с файлами.

Установка DroidLysis

  1. Установите необходимые системные пакеты
root@kitploit:~
sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev
  1. Установите инструменты дизассемблирования Android
  • Apktool ,
  • Baksmali, и опционально
  • Dex2jar и
root@kitploit:~
$ mkdir -p ~/softs
$ cd ~/softs
$ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar
$ wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar
$ wget https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip
$ unzip dex-tools-v2.4.zip 
$ rm -f dex-tools-v2.4.zip 
  1. Получите DroidLysis из Git-репозитория (рекомендуется) или через pip

Установка из Git в виртуальном окружении Python (python3 -m venv или pyenv virtual environments и т.д.).

root@kitploit:~
$ python3 -m venv venv
$ source ./venv/bin/activate
(venv) $ pip3 install git+https://github.com/cryptax/droidlysis

Кроме того, вы можете установить DroidLysis напрямую из PyPi (pip3 install droidlysis).

  1. Настройте conf/general.conf. В частности, замените /home/axelle на ваши соответствующие каталоги.
root@kitploit:~
[tools]
apktool = /home/axelle/softs/apktool_2.9.3.jar
baksmali = /home/axelle/softs/baksmali-2.5.2.jar
dex2jar = /home/axelle/softs/dex-tools-v2.4/d2j-dex2jar.sh
keytool = /usr/bin/keytool
...
  1. Запустите его:
root@kitploit:~
python3 ./droidlysis3.py --help

Конфигурация

Файл конфигурации — ./conf/general.conf (вы можете переключиться на другой файл с помощью опции --config). Здесь вы настраиваете расположение различных внешних инструментов (например, Apktool), имена файлов с шаблонами (по умолчанию ./conf/smali.conf, ./conf/wide.conf, ./conf/arm.conf, ./conf/kit.conf) и имя файла базы данных (используется только если указано --enable-sql)

Убедитесь, что указаны правильные пути к инструментам дизассемблирования, иначе DroidLysis их не найдёт.

Использование

DroidLysis использует Python 3. Чтобы запустить его и получить опции:

root@kitploit:~
droidlysis --help

Например, протестируйте на APK Signal:

root@kitploit:~
droidlysis --input Signal-website-universal-release-6.26.3.apk --output /tmp --config /PATH/TO/DROIDLYSIS/conf/general.conf

DroidLysis выводит:

  • Сводку на консоль (см. изображение выше)
  • Распакованный, предварительно обработанный образец в подкаталоге вашего выходного каталога. Подкаталог называется с использованием имени файла образца и его SHA256-суммы. Например, если мы анализируем приложение Signal и указываем --output /tmp, анализ будет записан в /tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290.
  • Базу данных (по умолчанию SQLite droidlysis.db), содержащую замеченные свойства.

Опции

Получить справку по использованию: droidlysis --help

  • На вход может подаваться файл или каталог с файлами для рекурсивного просмотра. DroidLysis умеет обрабатывать Android-пакеты, DEX, ODEX и ARM-исполняемые файлы, ZIP, RAR. DroidLysis не упадёт на файлах других типов (если только нет бага...), но не сможет понять их содержимое.

  • При обработке каталогов файлов обычно очень полезно перемещать обработанные образцы в другое место, чтобы знать, что уже обработано. Это реализуется опцией --movein. Также, если вас интересует только статистика, стоит очистить выходной каталог, содержащий подробную информацию по каждому образцу — для этого есть опция --clearoutput. Если вы хотите сохранить всю статистику в SQL-базу данных, используйте --enable-sql (см. здесь)

  • Анализ DroidLysis по умолчанию не проверяет известные сторонние SDK, т.е. не сообщает о подозрительной активности от них. Если вы хотите, чтобы они проверялись, используйте опцию --no-kit-exception. Обычно это приводит к обнаружению гораздо большего количества свойств для образца, так как SDK (например, рекламные) используют множество помеченных API (получение GPS-координат, IMEI, IMSI, HTTP POST...).

Выходной каталог образца (--output DIR)

Этот каталог содержит (если применимо):

  • Читаемый AndroidManifest.xml
  • Читаемые ресурсы в res
  • Библиотеки lib, ассеты assets
  • Дизассемблированный код Smali: smali (и другие)
  • Мета-информацию пакета: META-INF
  • Содержимое пакета при простой распаковке в ./unzipped
  • Исполняемый файл DEX classes.dex (и другие), конвертированный в jar: classes-dex2jar.jar, и распакованный в ./unjarred

Следующие файлы создаются DroidLysis:

  • autoanalysis.md: перечисляет каждый обнаруженный DroidLysis шаблон и его местоположение.
  • report.md: то же, что было выведено на консоль

Если вам не нужно создавать выходной каталог образца, используйте опцию --clearoutput.

Импорт трекеров из Exodus и т.д. (--import-exodus)

root@kitploit:~
$ python3 ./droidlysis3.py --import-exodus --verbose
Processing file: ./droidurl.pyc ...
DEBUG:droidconfig.py:Reading configuration file: './conf/./smali.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./wide.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./arm.conf'
DEBUG:droidconfig.py:Reading configuration file: '/home/axelle/.cache/droidlysis/./kit.conf'
DEBUG:droidproperties.py:Importing ETIP Exodus trackers from https://etip.exodus-privacy.eu.org/api/trackers/?format=json
DEBUG:connectionpool.py:Starting new HTTPS connection (1): etip.exodus-privacy.eu.org:443
DEBUG:connectionpool.py:https://etip.exodus-privacy.eu.org:443 "GET /api/trackers/?format=json HTTP/1.1" 200 None
DEBUG:droidproperties.py:Appending imported trackers to /home/axelle/.cache/droidlysis/./kit.conf

Трекеры из Exodus, которых нет в вашем исходном kit.conf, добавляются в ~/.cache/droidlysis/kit.conf. Сравните два файла и проверьте, какие трекеры вы хотите добавить.

База данных SQLite{#sqlite_database}

Если вы хотите обработать каталог образцов, вам, вероятно, понравится сохранять свойства, найденные DroidLysis, в базе данных, чтобы легко анализировать и запрашивать результаты. В этом случае используйте опцию --enable-sql. Это автоматически выгрузит все результаты в базу данных с именем droidlysis.db, в таблицу с именем samples. Каждая запись в таблице относится к конкретному образцу. Каждый столбец — это свойства, которые отслеживает DroidLysis.

Например, чтобы получить все имена файлов, SHA256-суммы и smali-свойства из базы данных:

root@kitploit:~
sqlite> select sha256, sanitized_basename, smali_properties from samples;
f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290|Signalwebsiteuniversalrelease4.52.4.apk|{"send_sms": true, "receive_sms": true, "abort_broadcast": true, "call": false, "email": false, "answer_call": false, "end_call": true, "phone_number": false, "intent_chooser": true, "get_accounts": true, "contacts": false, "get_imei": true, "get_external_storage_stage": false, "get_imsi": false, "get_network_operator": false, "get_active_network_info": false, "get_line_number": true, "get_sim_country_iso": true,
...

Шаблоны свойств

То, что обнаруживает DroidLysis, можно настроить и расширить в файлах каталога ./conf.

Шаблон состоит из:

  • имени (tag): пример send_sms. Это имя свойства. Должно быть уникальным в файле .conf.
  • шаблона (pattern): это регулярное выражение для поиска. Пример: ;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage. В файле smali.conf это регулярное выражение применяется к коду Smali. В данном случае есть 3 разных способа отправки SMS-сообщений из кода: sendTextMessage, sendMultipartTextMessage и sendDataMessage.
  • описания (опционально): объясняет важность свойства и что оно означает.
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=Sending SMS messages

Импорт трекеров Exodus Privacy

Exodus Privacy поддерживает список различных SDK, которые полезно исключить из нашего анализа через conf/kit.conf. Добавьте опцию --import_exodus в командную строку droidlysis: это проанализирует существующие трекеры, известные Exodus Privacy и ещё не присутствующие в вашем kit.conf. Наконец, он добавит все новые трекеры в ~/.cache/droidlysis/kit.conf.

После этого вы можете отсортировать ваш файл kit.conf:

root@kitploit:~
import configparser
import collections
import os

config = configparser.ConfigParser({}, collections.OrderedDict)
config.read(os.path.expanduser('~/.cache/droidlysis/kit.conf'))
# Order all sections alphabetically
config._sections = collections.OrderedDict(sorted(config._sections.items(), key=lambda t: t[0] ))
with open('sorted.conf','w') as f:
    config.write(f)

Скрипт JEB для smali-свойств

Этот скрипт помогает искать методы в интерфейсе JEB, содержащие код, соответствующий smali-шаблону, и легко переходить к этим функциям. Когда вы загружаете скрипт и выбираете файл details.md среди файлов анализа droidlysis, появляется окно поиска. После перемещения вы можете легко снова вызвать окно поиска, используя ярлык последнего выполненного скрипта.

  • JEB > File > Scripts > Script selector > script/DroidlysisSearch.py
  • JEB > File > Scripts > Run last Script

Обновления

  • v3.4.7 - Удалён Procyon, интегрированы несколько PR #24 и #25, добавлено более детальное обнаружение злоупотребления доступностью
  • v3.4.6 - Обнаружение функции манифеста, автоматически загружающей APK при установке
  • v3.4.5 - Создание пользовательского файла kit.conf с возможностью записи
  • v3.4.4 - Исправление ошибки #14
  • v3.4.3 - Использование файлов конфигурации
  • v3.4.2 - Добавлен импорт трекеров Exodus Privacy
  • v3.4.1 - Удалена зависимость от Androguard
  • v3.4.0 - Поддержка Multidex
  • v3.3.1 - Улучшено обнаружение строк Base64
  • v3.3.0 - Выгрузка данных в JSON
  • v3.2.1 - Обнаружение IP-адресов
  • v3.2.0 - Dex2jar опционален
  • v3.1.0 - Обнаружение строк Base64
Скачать инструмент