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,我们需要选择一个设备和要附加的进程。在以下示例中,我们使用adb和frida-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应用它们。
标签:工具分享