
Hooker — это проект с открытым исходным кодом для динамического анализа Android-приложений. Этот проект предоставляет различные инструменты и приложения, которые можно использовать для автоматического перехвата и изменения любых API-вызовов, совершаемых целевым приложением.
Hooker — это проект с открытым исходным кодом для динамического анализа Android-приложений. Проект предоставляет различные инструменты и приложения, которые можно использовать для автоматического перехвата и изменения любых API-вызовов, совершаемых целевым приложением.
Он использует фреймворк Android Substrate для перехвата этих вызовов и сбора всей их контекстной информации (параметры, возвращаемые значения, ...). Собранная информация может сохраняться либо в ElasticSearch, либо в JSON-файлах.
Также предоставляется набор Python-скриптов для автоматизации выполнения анализа с целью сбора всех API-вызовов, совершаемых набором приложений.
Android-Hooker — это концепт-прототип, основанный на фреймворке Substrate. Это означает, что Hooker не будет работать, если Substrate неправильно установлен на вашем устройстве. На данный момент авторы успешно установили Substrate на устройства с версиями Android 4.1 и 4.2. Если вы знаете, как установить Substrate на более новые версии, пожалуйста, сообщите нам по электронной почте [email protected], и мы будем рады интегрировать это в проект.
Hooker состоит из нескольких модулей:
Мы разрабатывали Hooker в 64-битной системе Debian, поэтому он может неправильно работать в других системах из-за неверных путей или параметров. Мы будем очень признательны за помощь в выявлении таких несовместимостей. Пожалуйста, сообщите об ошибке в нашем трекере ошибок, если столкнётесь с какой-либо проблемой при его использовании.
Для использования Hooker вам понадобится как минимум один сервер, на котором установлены:
Этот шаг связан с установкой ElasticSearch. Пожалуйста, скачайте и следуйте онлайн-документации ElasticSearch: http://www.elasticsearch.org/overview/elkdownloads/. Вы можете установить Elasticsearch на одном хосте или развернуть кластер узлов Elasticsearch.
Вы можете загрузить Android bundle здесь. Если вы хотите использовать установочный скрипт Hooker, вам необходимо:
Убедитесь, что вы задали переменную окружения ANDROID_HOME: $ export ANDROID_HOME=/path/to/your/sdk/folder
Загрузите SDK APIs через ваш SDK Manager.
Для помощи в сборке и установке всех необходимых зависимостей предоставляется установочный скрипт. Если вы хотите использовать этот скрипт, убедитесь, что у вас есть следующие зависимости:
# openjdk-7-jdk, ant, python-setuptools (just apt install them)
Когда всё будет готово, запустите установочный скрипт в корневом каталоге Hooker:
$ ./install.sh
$ $ANDROID_HOME/tools/android list target.cd tools/emulatorCreator && python HookerInstaller.py -s SDK_PATH -a Hooker_test -t ANDROID_TARGET -d AVD_DIRECTORY,Menu > System Settings > Security > Screen lock > NoneЕсли вам интересно, вы можете посмотреть видео о том, как подготовить эмулятор, здесь
Если ваш хост Elasticsearch находится на другом хосте, чем ваш Android-эмулятор, вам нужно будет перенаправлять трафик через сеть. Для этого можно использовать socat:
$ socat -s -v TCP4-LISTEN:9200,fork,ignoreeof,reuseaddr TCP4:192.168.98.11:9200,ignoreeof
Если у вас возникла ошибка, связанная с эмуляцией OpenGLES (Could not load OpenGLES emulation library), вам нужно отредактировать ldconfig (от имени root):
# echo "/path/to/your/sdk/tools/lib" > /etc/ld.so.conf.d/android.conf
# ldconfig
Посмотрите это видео, чтобы увидеть демонстрацию того, как запустить ручной эксперимент по анализу конкретного приложения.
Если вы хотите использовать Hooker на реальных устройствах, сначала прочитайте соответствующий README.
hooker_xp/sampleManualAnalysis.conf,hooker_xp/sampleAutomaticAnalysis.conf,*RealDevice*,Hooker использует ElasticSearch для хранения событий и Kibana в качестве интерфейса для их анализа. Чтобы помочь вам анализировать приложения, мы поместили пример дашборда Kibana в каталог tools/kibana-dashboard. Для его использования вам нужно будет запустить первый эксперимент, а затем импортировать файл filekibana-export.json. Чтобы импортировать дашборд, вам нужно перейти по URL http://localhost:5601 и:
Settings -> Objects,Import,Скрипт для проведения эксперимента на Python находится в каталоге hooker_xp:
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
Вы должны увидеть журналы Python, объясняющие, что происходит.
Мы будем рады, если вы поможете нам улучшить эту работу. Пожалуйста, используйте возможности GitHub для предоставления ваших исправлений и улучшений.
Проект Hooker был инициирован Жоржем Боссером и Димитрием Киршнером. Оба работают в AMOSSYS, французской компании в области ИТ-безопасности http://www.amossys.fr.
Это программное обеспечение распространяется под лицензией GPLv3. Полный текст лицензии см. в файле LICENSE в корневом каталоге дистрибутива.