Skip to content

抓取 IM 即时通讯流量 ​

💬 抓 IM App(类微信/QQ)的消息收发。

IM 流量特点 ​

  • 长连接(TCP/wss)
  • 自定义二进制协议(protobuf 居多)
  • 收发消息、已读回执、在线状态
  • 离线消息拉取

抓取 ​

bash
r0capture -U -f com.example.im -p im.pcap
# 登录、发消息、收消息

抓到的内容 ​

[SSL_write] <protobuf 二进制: 发送消息请求>
[SSL_read]  <protobuf: 服务端 ACK>
[SSL_read]  <protobuf: 对方发来的消息>

IM 常用 protobuf,body 不可读,需 .proto schema 解码:

bash
protoc --decode_raw < msg.bin

协议分析步骤 ​

  1. 抓发送一条消息的流量
  2. 在 pcap 里定位对应 SSL_write(按时间/大小)
  3. 用 myhexdump 看二进制结构
  4. 对照 protobuf schema 或逆向猜字段
  5. 对比收消息的 SSL_read

心跳与重连 ​

IM 必有心跳保活,pcap 里定期出现。网络切换会触发重连。

相关文档 ​

基于 VitePress 构建 · 教学用途