QQ 流量分析:用 Wireshark 抓自己的 QQ,它到底是 TCP 还是 UDP?加密了吗?能恢复出明文文件吗?
实验环境
- 操作系统:Windows 11
- QQ 版本:Windows 桌面版(NTQQ)
- 抓包工具:Wireshark 4.6.9(Npcap 抓包驱动)
- 抓包网卡:WLAN
实验方法
- 双击 WLAN 网卡开始抓包;
- 登录 QQ,向好友发送一条文字消息和一张图片;
- 通过 PowerShell 的
Get-NetTCPConnection找到 QQ 进程(QQ.exe/ QQEX.exe)建立的远程服务器 IP; - 在 Wireshark 显示过滤器中输入这些 IP,筛选出 QQ 流量。

一、QQ 使用 UDP 还是 TCP?
观察到 QQ 进程与所有服务器(120.233.x.x、36.159.x.x 等腾讯 IP)之间全部建立在 TCP 443 端口上,抓包中未出现 UDP 8000 等传统 QQ OICQ 协议包。
结论:当前版本 QQ 客户端主要使用 TCP 传输数据。

二、QQ 通信是加密还是明文?
对 QQ 的 TCP 连接执行 Follow → TCP Stream:
- 数据包被 Wireshark 识别为 TLSv1.2,包含 Application Data、Encrypted Alert 等记录;
- 流内容除 TLS 握手阶段的 SNI 域名(如 theve.beacon.qq.com)外,全部为不可读二进制乱码;
- 无法还原聊天文字等任何应用层内容。
十六进制视图中,TLS 握手阶段明文暴露了 SNI 域名 theve.beacon.qq.com,握手完成后所有应用数据均加密:
结论:QQ 通信已 TLS 加密,抓包只能看到 "和谁、何时、传了多少",看不到具体内容。


| 三、能否从流量中恢复出明文文件?
这道题的思路是:不同文件类型有固定的文件头特征码,可以在抓包的十六进制流中搜索:
表格
| 文件类型 | 文件头特征码(十六进制) |
|---|---|
| JPEG 图片 | FF D8 FF |
| PNG 图片 | 89 50 4E 47 |
| GIF 图片 | 47 49 46 38 |
| ZIP 压缩包 | 50 4B 03 04 |
| PDF 文档 | 25 50 44 46 |
我在 Follow TCP Stream 的十六进制视图中搜索 FF D8 FF(JPEG)和 89 50 4E 47(PNG),均未找到匹配。因为聊天中发送的图片同样走 TLS 加密通道,文件内容被封装在 TLS Application Data 记录中,在 Wireshark 中表现为无意义的二进制乱码。
作为对比,之前用 netcat 做明文 TCP 聊天实验时,Follow Stream 可以完整看到双方对话内容,这就是明文协议和加密协议的本质区别。
结论:现代 QQ 客户端的文件传输同样经过 TLS 加密,无法从网络流量中直接恢复出图片或文件。
浙公网安备 33010602011771号