抓 Protobuf/gRPC 流量配方
📦 抓 Protobuf 序列化的二进制流量并解析。
思路
Protobuf over TLS 走 SSL,r0capture 能抓到序列化后的二进制明文,但需额外解析。
步骤
1. 抓包
bash
python3 r0capture.py -U -f com.app -v -p out.pcap2. 识别 Protobuf
hexdump 里是二进制;调用栈里有 *Proto*/*toByteArray*/grpc 等帧。
3. 提取二进制
在 Wireshark 里 Follow TCP Stream,保存 raw,得到 Protobuf 二进制。
4. 原始解码(无 .proto)
bash
protoc --decode_raw < captured.bin
# 输出字段号和大致值5. 带 .proto 解码
bash
protoc --decode=package.MessageType message.proto < captured.bin
# 输出可读字段6. 定位 .proto
若没有 .proto:
- 反编译 App,找
*.proto文件或 Protobuf 生成的 Java 类 - 用栈定位序列化代码,反推结构
gRPC 的注意
gRPC 基于 HTTP/2,r0capture 对 HTTP/2 支持有限。详见 HTTP/2 限制。若 gRPC over HTTP/1.1 或自定义 TCP,则可抓。