Binder Trace是一个拦截和解析Android Binder消息的工具。可以将其视为“Wireshark for Binder”。

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/foundryzero/binder-trace

Binder Trace是一个拦截和解析Android Binder消息的工具。可以将其视为“Wireshark for Binder”。

⚙️ 安装

您需要一个已root的Android设备或模拟器。

  • (仅限Linux) - 安装xclip或xsel以获取“复制到剪贴板”功能

sudo apt-get install xclip

sudo apt-get install xsel

  • 克隆repo并安装python依赖项

pip install -r binder_trace/requirements.txt

  • 检查已安装的frida的版本(确保您已经pip安装了要求)

pip list | grep frida

  • frida发布页面下载匹配的frida-server版本

  • 确保adb以root身份运行,将frida-server推送到您的设备并运行它

adb root

adb push frida-server /data/local/tmp

chmod u+x /data/local/tmp/frida-server

adb shell /data/local/tmp/frida-server

Arguments

Argument Description
-h 打印参数帮助。
-d DEVICE 要连接的设备,例如“emulator-5554”。使用adb devices列出可用设备。如果未提供,则默认为USB设备。
-p PID 要连接的DEVICE上进程的pid。
-n NAME 要连接的DEVICE上进程的名称,例如“Messaging”。
-s STRUCTPATH 结构文件目录的路径。

▶️ 启动Binder Trace

要启动Binder Trace,我们需要选择一个设备和要附加的进程。在以下示例中,我们使用adbfrida-ps在本地模拟器上标识要附加的进程。由于它是一个Android 11模拟器,我们选择了Android 11结构目录。选择最接近您的Android版本的结构目录。如果您想要不同版本Android的结构,请告诉我们。一旦它运行起来,开始使用目标应用程序生成一些Binder事务。

> adb devices
List of devices attached
emulator-5554   device

> frida-ps -Ua
 PID  Name           Identifier
----  -------------  ----------------------------
8334  Messaging      com.android.messaging
7941  Phone          com.android.dialer
9607  Settings       com.android.settings

> cd binder_trace
> python -m binder_trace -d emulator-5554 -n Messaging -s ../structs/android11

⌨️ 控件

Key Action
up 向上移动
down 向下移动
shift + up 向上翻页
shift + down 向下翻页
home 转到顶部
end 转到底部
tab 下一个面板
shift + tab 上一个面板
ctrl + c 将面板复制到剪贴板
f 打开过滤选项
h 打开帮助
q 退出

🔎 过滤

如果您对特定消息感兴趣,可以使用以下选项过滤显示的结果。

  • 接口 - 限制结果为包含区分大小写搜索字符串的接口,例如“com.android”或“Sms”。
  • 方法 - 将结果限制为包含指定大小写字符串的函数名称。
  • 类型 - 将结果限制为某些类型的消息,例如请求或响应。

一旦输入了过滤选项,请按Enter应用它们。

标签:工具分享