设备端与主机端分工
⚙️ r0capture 的两端架构:script.js(设备)+ r0capture.py(主机)。
两端职责
设备端 (script.js)
| 职责 | 实现 |
|---|---|
| Hook 函数 | Interceptor / Java.use |
| 取明文 | readByteArray |
| 取五元组 | SSL_get_fd / Socket 地址 |
| 发消息 | send(meta, data) |
设备端只做"抓+发",不做格式化/存储。
主机端 (r0capture.py)
| 职责 | 实现 |
|---|---|
| 注入脚本 | frida-python |
| 接消息 | on_message |
| 拼 pcap | struct.pack |
| 打印 | myhexdump + loguru |
| 文件管理 | pcap_file / 日志 |
主机端做"收+存+展示"。
为什么这样分
- 设备端要轻:注入脚本越简单越不易被发现/崩溃
- 主机端有资源:PC 有磁盘/大内存,适合写文件/格式化
- 解耦:换主机端展示方式(GUI/CLI)不影响设备端 hook
数据通道
两端通过 frida 的 send/recv 通道通信:
- 设备→主机:
send(meta, data)(主流量) - 主机→设备:
script.exports.xxx()(RPC,如 setssllib)
详见 send/recv。