WebSocket / WSS
🔌 全双工通信协议,r0capture 同样能抓。
WebSocket 与 HTTP 的关系
WebSocket 握手借 HTTP 升级,之后切换为全双工帧协议:
WSS(WebSocket over TLS)下,所有帧都经 SSL_read/SSL_write,r0capture 通杀。
抓到的内容
握手(HTTP 升级请求/101 响应)+ 后续 WebSocket 帧,全是明文:
- 握手阶段:标准 HTTP 文本
- 帧阶段:WebSocket 帧格式(FIN+opcode+mask+payload)
帧的 payload 可能是文本(JSON)或二进制(Protobuf)。r0capture 抓到的是已解掩码的 payload 明文(因为 hook 在 SSL 层,mask 已由 WebSocket 库处理)。
在 r0capture 里的表现
| 阶段 | function | 内容 |
|---|---|---|
| 握手请求 | SSL_write | GET /ws ... Upgrade: websocket |
| 握手响应 | SSL_read | HTTP/1.1 101 ... |
| 发送帧 | SSL_write | WebSocket 帧 payload |
| 接收帧 | SSL_read | WebSocket 帧 payload |
帧格式提示
Wireshark 能自动识别 WebSocket 帧并解析 opcode(text/binary/close/ping/pong)。r0capture 写的 pcap 里,Wireshark 会把 TCP 流识别为 WebSocket 协议。