Hooker 是一个用于 Android 应用程序动态分析的开源项目。该项目提供了多种工具和应用,可用于自动拦截并修改目标应用所发出的任意 API 调用。
它利用 Android Substrate 框架来拦截这些调用,并汇总所有上下文信息(参数、返回值等)。收集的信息可以存储在 ElasticSearch 中,也可以保存为 JSON 文件。
此外,还提供了一套 Python 脚本,用于自动执行分析,以收集一组目标应用发出的所有 API 调用。
Android-Hooker 是一个基于 Substrate 框架 的概念验证工具。这意味着如果设备上未正确安装 Substrate,Hooker 将无法正常工作。目前,作者已成功在 Android 4.1 和 4.2 版本的设备上安装了 Substrate。如果您知道如何在更高版本上安装 Substrate,请通过电子邮件 ([email protected]) 联系我们,我们将很高兴将其集成到项目中。
Hooker 由多个模块组成:
我们在 Debian 64 位系统上开发了 Hooker,因此由于不正确的路径或参数,它可能无法在其他系统上正常执行。我们非常感谢您帮助识别这些不兼容问题。如果您在使用中遇到任何错误,请在我们的问题跟踪器中报告问题。
要使用 Hooker,您至少需要一台安装了以下组件的服务器:
此步骤与 ElasticSearch 安装有关。请下载并遵循 ElasticSearch 在线文档:http://www.elasticsearch.org/overview/elkdownloads/。您可以在单台主机上安装 ElasticSearch,也可以部署一个 Elasticsearch 节点集群。
您可以在此处下载 Android 开发包 http://developer.android.com/sdk/index.html。如果您想使用 Hooker 安装脚本,您需要:
确保设置了 ANDROID_HOME 环境变量:$ export ANDROID_HOME=/path/to/your/sdk/folder
从 SDK 管理器中下载 SDK APIs。
提供了一个安装脚本,用于帮助您构建和安装所有必要的依赖项。 如果您想使用此脚本,请确保您拥有以下依赖项:
# openjdk-7-jdk, ant, python-setuptools (只需 apt 安装它们)
一切就绪后,在 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,菜单 > 系统设置 > 安全 > 屏幕锁定 > 无。有兴趣的话,您可以观看一段关于如何准备模拟器的视频 此处。
如果您的 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,请先阅读 特定自述文件。
hooker_xp/sampleManualAnalysis.conf,hooker_xp/sampleAutomaticAnalysis.conf,*RealDevice* 配置文件,Hooker 使用 ElasticSearch 存储事件,并使用 Kibana 作为前端来分析这些事件。为了帮助您分析应用,我们在 tools/kibana-dashboard 目录下推送了一个 Kibana 仪表板示例。要使用它,您需要先运行第一次实验,然后导入 kibana-export.json 文件。要导入仪表板,请访问 URL http://localhost:5601,然后:
设置 -> 对象,导入,Python 实验脚本位于 hooker_xp 目录中:
$ cd hooker_xp && python hooker_xp.py -c yourAnalysisConfigurationFile.conf
您应该会看到 Python 日志解释正在发生什么。
我们非常乐意您帮助改进这项工作。 请使用 GitHub 功能提供您的错误修复和改进。
Hooker 项目由 Georges Bossert 和 Dimitri Kirchner 发起。 两人均就职于 AMOSSYS,一家法国 IT 安全公司 http://www.amossys.fr。
本软件遵循 GPLv3 许可证。有关完整的许可证文本,请参阅顶层分发目录中的 LICENSE 文件。