
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.