Dexcalibur - это Android -инженерная платформа, ориентированная на автоматизацию инструментов. Его особенность состоит в том, чтобы использовать динамический анализ для улучшения эвристики статического анализа. Он нацелен на автоматизирование скучных задач, связанных с динамическим инструментами, например:
Вы хотите поделиться чем -нибудь или вам нужна помощь? Присоединяйтесь к нашим официальным чатам:
Телеграмма - самый быстрый способ дать ответ
Официальная документация доступна здесь (веб -сайт - работа в процессе).
Смотрите последние новости здесь: http://docs.dexcalibur.org/news.html
Показать демонстрационные видеоролики Dexcalibur: Демонстрация: менее 1 минуты до 61 методов? Не проблема. (YouTube)
Способствовать !
Не стесняйтесь! Есть несколько способов внести свой вклад:
Перейти на установку DOC
Альтернатива: используйте Docker
adb (и эмулятор Android, если это необходимо)docker-compose build android-dexcaliburdocker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bashДля Linux и MacOS
Установка NPM: если Dexcalibur был установлен Globale с использованием NPM ( -g опция), то Dexcalibur может быть запущен из терминала, выполняя $ dexcalibur , иначе, где он может быть запущен с помощью $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js .
Установите из источника: из папки dexcalibur , запустите $ dexcalibur или $ node dexcalibur.js .
Для окон
Установка NPM: событие Если dexcalibur установлен в глобулировании с использованием NPM ( -g опция), dexcalibur должен быть запущен из терминала, выполнив следующую команду из терминального node <NPM_ROOT>/dexcalibur/dexcalibur.js .
Установите из источника: из папки dexcalibur , в терминал, запустите командный node dexcalibur.js .
Вы используете предыдущую версию Dexcalibur?
Следуйте тем же шагам, что и новая установка, и когда вам следует ввести путь рабочей области, введите свое текущее местоположение рабочей области.
Просто делая:
$ npm install -g dexcalibur
Существующая конфигурация и рабочая область будут обнаружены автоматически.
Следующие скриншоты иллюстрируют автоматическое обновление XREFS во время выполнения.
На самом деле, самое большое ограничение - Dexcalibur не может генерировать исходный код нативной функции нацеленного на крючок (в библиотеку JNI). Тем не менее, вы можете объявить вручную перехватчиком Фриды, редактируя крючок.
Предполагая, что Dexcalibur не предоставляет (на данный момент) функции для анализа нативной части, такой как библиотека JNI или JNA, были обнаружены только функции и ограничения, связанные с части Java.
Точность анализа зависит от полноты изображения API Android, используемого на ранних этапах анализа. Это означает, что если вы используете файл dex, сгенерированный из файла Android.jar из Android SDK, некоторые ссылки на внутренние методы, поля или классы из API Android Java Java могут отсутствовать. Лучшие результаты получаются, когда анализ начинается из файла «boot.oat», извлеченного непосредственно с реального устройства, использующего ожидаемую версию Android.
TODO: написать текст
TODO: написать текст
Отслеживаемое поведение
Статический анализатор, вовлеченный в действие «Run Smali (VM)», способен обнаружить и принять, но отслеживать следующие поведения:
На самом деле, обработчики/слушатели для таких неверных инструкций не поддерживаются, но события отслеживаются и отображаются.
Dexcalibur ir
VM создает пользовательское и упрощенное промежуточное представление (IR), которое отображается только для того, чтобы помочь аналитику выполнить анализ.
В зависимости от значения глубины и конфигурации Callstack IR может включать или нет инструкции, выполненную в Call Function. Если исполнение входит в блок Try и продолжает возвращаться, но никогда не изгибается, то блок улова не будет отображаться. Фактически, цель Dexcalibur IR состоит в том, чтобы превратить только «то, что выполняется» или «что можно выполнить в зависимости от значения какого -то символа» в контекст виртуальной машины.
Dexcalibur IR помогает прочитать очищенную версию BytCode, удалив бесполезный Goto и непрозрачный предикат. Dexcalibur IR может быть сгенерирован виртуальной машиной с 2 упрощающими уровнями:
1 -й уровень IR, может быть использован, если вы не доверяете IR 2 -го уровня:
2 -й уровень:
Android API Mock
Тодо
Подробности
Smali VM следует за шагами:
Как виртуальная ручка вызывала-* Инструкция?
Манифестный анализ (ограниченный)
Перед первым заездом манифест Android в приложении проанализирован. На самом деле, аномалии в манифест такой небезопасной конфигурации действительно обнаруживаются на этом уровне.
Единственная цель анализа Android Manifest - заполнить другие виды анализаторов.
Анализ разрешений
Каждое разрешения, извлеченные из манифеста, перечислены и выявлены и сравниваются со спецификацией Android целевой версии API Android.
Dexcalibur предоставляет - только в некоторых случаях - описание цели разрешения, минимальная версия Api Api Android, ...
Анализ деятельности
Анализ поставщиков
Анализ услуг
Анализ приемников
Сетевой мониторинг
Мониторинг намерений
Мониторинг доступа к файлам
Вы не можете найти многопользовательское меню? Не проблема, меню нет, но минималистичная совместная работа может быть достигнута.
Dexcalibur запускает веб -сервер. Таким образом, если несколько человек находятся в одной и той же сети этого веб -сервера, и если брандмауэр хоста хорошо настроен, вы можете быть несколькими для работы над одним и тем же экземпляром Dexcalibur.
Фактические ограничения:
Особая благодарность участникам:
Прежде чем идти глубже:
dexcalibur --reinstall ? Если нет, попробуйте. Во -первых, проверьте, были ли глобальные настройки сохранены в <user_directory>/.dexcalibur/
$ ls -la ~/.dexcalibur
total 8
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x+ 87 test_user staff 2784 29 avr 11:47 ..
-rw-r--r-- 1 test_user staff 204 29 avr 11:41 config.json
$ cat ~/.dexcalibur/config.json
{
"workspace":"/Users/test_user/dexcaliburWS3",
"registry":"https://github.com/FrenchYeti/dexcalibur-registry/raw/master/",
"registryAPI":"https://api.github.com/repos/FrenchYeti/dexcalibur-registry/contents/"
}
Далее, проверьте, может ли структура рабочей области Dexcalibur: может отличаться (содержание /api папки может отличаться).
$ ls -la ~/dexcaliburWS/.dxc/*
/Users/test_user/dexcaliburWS/.dxc/api:
total 0
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
drwxr-xr-x 8 test_user staff 256 29 avr 11:41 sdk_androidapi_29_google
/Users/test_user/dexcaliburWS/.dxc/bin:
total 34824
drwxr-xr-x 4 test_user staff 128 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
-rwxr-xr-x 1 test_user staff 17661172 29 avr 11:41 apktool.jar
drwxr-xr-x 18 test_user staff 576 29 avr 11:41 platform-tools
/Users/test_user/dexcaliburWS/.dxc/cfg:
total 8
drwxr-xr-x 3 test_user staff 96 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
-rw-r--r-- 1 test_user staff 314 29 avr 11:41 config.json
/Users/test_user/dexcaliburWS/.dxc/dev:
total 0
drwxr-xr-x 2 test_user staff 64 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
/Users/test_user/dexcaliburWS/.dxc/tmp:
total 0
drwxr-xr-x 2 test_user staff 64 29 avr 11:41 .
drwxr-xr-x 7 test_user staff 224 29 avr 11:41 ..
Если вы используете физическое устройство, подключенное к USB, убедитесь, что режим разработчика и USB -отладка включены.
Если вы используете виртуальное устройство, перейдите по адресу /splash.html , выберите Device Manager , нажмите « Connect over TCP ... и следуйте инструкциям». Если вы не знаете IP -адрес вашего устройства, пусть Dexcalibur обнаружит его, проверьте automatic configuration .
Вам нужно зарегистрировать целевое устройство, прежде чем иметь возможность его использовать. Во время регистрации Dexcalibur собирайте метаданные устройства и выдвигайте совместимую версию Frida Server.
Такие метаданные используются для выбора правых целей Frida-Server и Frida-Gadget.
Если красный восклицательный знак ! Появится в линии в список устройств, тогда ваш рабочий стол не допускается устройством. Вам, вероятно, нужно подтвердить
Если ваше устройство указано в DeviceManager, а столбец online проверяется, затем нажмите « enroll
Если ваше устройство указано в DeviceManager, а столбец online проверяется, затем нажмите « enroll
Версия Dexcalibur <v0.7 не смогла обнаружить автоматически эмулированное устройство и использовать его из -за неполного анализа выходного сигнала ADB.
Поскольку версия> = v0.7, как только ваше виртуальное устройство будет запущено, перейдите к /splash.html или нажмите DEXCALIBUR в панель навигации. Нажмите кнопку Device Manager в левое меню и нажмите кнопку Refresh в верхней части массива.
У вас должна быть строка, начиная с идентификатора ADB вашего виртуального устройства.
Во -первых, как любое целевое устройство, вы должны зарегистрировать его.
Нажмите Connect over TCP ... чтобы добавить новое устройство по TCP или подключить зарегистрированное устройство через TCP.
Если устройство никогда не было зарегистрировано, зачисление будет выполняться через TCP. В некоторых случаях соединение над TCP медленнее, чем над USB. Таким образом, регистрация может занять дополнительное время.
Если устройство было зарегистрировано через USB, поэтому новый тип переноса для этого устройства становится TCP.
Создайте запрос на притяжение в этом репозитории или создайте проблему.
Создайте запрос на притяжение в репозитории Dexcalibur-Doc.
Документация доступна здесь (веб -сайт DOC) и здесь (Wiki)
![]() |
|---|
| Они предложили лицензию на все продукты <3 |
На самом деле мало документации и учебных ресурсов о Деккалибуре. Если вы успешно использовали Dexcalibur для выигрыша CTF Challenge или для поиска уязвимости, я настоятельно рекомендую вам поделиться своим опытом.