message 字段全集
📋 设备端 send 到主机端的 message 的所有字段。
完整字段表
r0capture 的 message(send 第一参)含以下字段:
| 字段 | 类型 | 含义 | 来源 |
|---|---|---|---|
type | string | "SSL_read"/"SSL_write"/"socket_read"/"socket_write" | hook 类型 |
src_addr | uint32 | 源 IP(大端) | ipToNumber + ntohl |
src_port | int | 源端口 | sockAddr.port |
dst_addr | uint32 | 目的 IP(大端) | ipToNumber + ntohl |
dst_port | int | 目的端口 | sockAddr.port |
ssllib | string | 当前 SSL 库路径 | setssllib |
socket | string | socket 描述(调试用) | getLocalSocketAddress |
二进制载荷(send 第二参)单独传,不在 message 里。
type 取值
| type | 触发 hook | 含义 |
|---|---|---|
SSL_write | Native SSL_write | App 发送的 TLS 明文 |
SSL_read | Native SSL_read | App 收到的 TLS 明文 |
socket_write | Java SocketOutputStream | 裸 TCP 发送 |
socket_read | Java SocketInputStream | 裸 TCP 接收 |
地址字段流转
详见 IPv4 地址。
主机端处理
python
# r0capture.py on_message
p = message["payload"]
if p["type"] in ("SSL_write", "SSL_read", "socket_write", "socket_read"):
ssl_log(p, data)ssl_log 据字段构造 pcap 包 + 打终端日志。详见 ssl_log。
缺字段的情况
若 socket 已关闭,getPortsAndAddresses 可能返回 null,此时地址为 0(0.0.0.0)。见 zero-address。