首页
社区
课程
招聘
binder-trace:基于内核采集的 Android Binder 调用观测工具
发表于: 4天前 2466

binder-trace:基于内核采集的 Android Binder 调用观测工具

4天前
2466

项目地址:90eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3N6i4q4A6N6h3I4#2L8#2)9J5c8X3u0A6L8X3c8W2M7W2)9J5k6s2c8J5j5h3y4W2

最近整理了一个 Android Binder 调用观测工具 binder-trace。它不是在 Java/Native 层做 hook,而是通过内核模块采集 Binder transaction,在用户态提供 WebUI、TUI、JSONL 和 MCP 查询接口,适合排查系统服务调用、接口频率、payload 和 reply 关联关系。

Android 上很多跨进程行为最后都会落到 Binder。平时看 logcat、Frida hook 都能解决一部分问题,但如果想从 Binder transaction 这一层持续观察系统服务调用,常见需求会变成:

binder-trace 的目标就是把这类观察流程收敛成一个工具链:内核侧负责采集,用户态负责控制、解析、存储和展示。

需要一台已 root 的 Android 设备,并准备:

先确认设备信息:

把文件推到设备:

加载内核模块并确认功能:

如果设备已经加载过旧模块,可以先卸载:

这里要注意,rmmod 会等待已经进入 Binder hook 的线程退出。如果设备上存在长时间阻塞的 Binder read / looper 线程,卸载可能需要等一段时间。

日常查看推荐用 WebUI。先转发端口:

在设备侧启动:

电脑浏览器打开:

常见过滤方式:

--no-enable 用于只读取现有事件流,不主动修改内核捕获配置。WebUI 的过滤和分页在后端执行,浏览器只渲染当前窗口,不会因为前端窗口大小丢掉后端已捕获事件。

如果只是临时排查,TUI 更适合直接在终端里看:

也可以按目标缩小范围:

如果要接脚本或后续分析,可以输出 JSONL:

事件外层是统一消息信封,object 表示事件类型,data 是对应载荷。这样后面用 jq、Python 或其他工具处理会比较直接。

MCP 入口适合让 AI assistant 在线查询 Binder trace。先转发端口:

设备侧启动 MCP 服务:

桌面 MCP client 连接本机转发后的地址即可,核心是 Streamable HTTP,并指向 /mcp

默认 MCP 只读取实时事件流,不修改内核捕获配置。如果需要允许 AI 开关 Binder trace,需要显式加 --allow-control,也可以配合 --enable --uid 1000 这类参数启动。

adb shell getprop ro.product.cpu.abi
adb shell uname -r
adb shell su -c id
adb shell mkdir -p /data/local/tmp/binder-trace
adb push binder-trace /data/local/tmp/binder-trace/binder-trace
adb push bt-kmod.ko /data/local/tmp/binder-trace/bt-kmod.ko
adb shell chmod 755 /data/local/tmp/binder-trace/binder-trace
adb shell su -c 'insmod /data/local/tmp/binder-trace/bt-kmod.ko'
adb shell su -c 'lsmod | grep bt_kmod'
adb shell su -c '/data/local/tmp/binder-trace/binder-trace ipc feature'
adb shell su -c 'rmmod bt_kmod'

[招生]科锐逆向工程师培训(2026年7月3日实地,远程教学同时开班, 第56期)!

最后于 4天前 被fuqiuluo73编辑 ,原因:
收藏
免费 0
打赏
分享
最新回复 (30)
雪    币: 5
活跃值: (1623)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
66666
4天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
6666
4天前
0
雪    币: 4793
活跃值: (5845)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
6
4天前
0
雪    币: 6356
活跃值: (11407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
3天前
0
雪    币: 109
活跃值: (410)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
666
3天前
0
雪    币: 577
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
222
3天前
0
雪    币: 4864
活跃值: (5154)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
6666
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
6666
3天前
0
雪    币: 3522
活跃值: (7070)
能力值: ( LV11,RANK:185 )
在线值:
发帖
回帖
粉丝
10
1
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
666
3天前
0
雪    币: 95
活跃值: (3237)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
66666666666666666666
3天前
0
雪    币: 701
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
3天前
0
雪    币: 0
活跃值: (585)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
3天前
0
雪    币: 4262
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
666
3天前
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
3天前
0
雪    币: 1000
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
666
3天前
0
雪    币: 758
活跃值: (1730)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
666
3天前
0
雪    币: 196
活跃值: (190)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
666
3天前
0
雪    币: 659
活跃值: (755)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
感谢分享
3天前
0
雪    币: 1
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
666
2天前
0
雪    币: 754
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
感谢分享
1天前
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
666
21小时前
0
雪    币: 2639
活跃值: (3680)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
666
19小时前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
666
18小时前
0
游客
登录 | 注册 方可回帖
返回