:本文章为本人学习笔记,一切内容仅为本人观点,并不能保证一定有效。

目的:使用 Wireshark 捕获并分析 QQ 客户端的网络流量回答以下问题:

  • QQ 使用的是 UDP 还是 TCP?

  • 通信内容是加密的还是明文的?

实验环境:

Wireshark

4.6.0

Npcap

1.83

Windows

11

QQ

9.9.23-41679 (64位)

网络环境

局域网,仅ipv4,可访问互联网

这里需要一位好友作为消息对象。

为了实验方便,实验前确保在同一个局域网。

捕获 QQ 流量

打开 Wireshark,选择当前活动的网络接口

开始抓包,并在QQ执行操作

  • 发送一条或多条文字消息给好友

  • 接收一条或多条回复

  • 发送图片或文件(为了方便,本次实验使用图片)

捕获足够流量后,停止抓包。

流量分析

由于新版QQ框架的原因,Wireshark并不能通过oicq筛选qq相关流量。

图片消息在局域网中的传输

文件传输、大文件发送会使用 TCP,因为 TCP 有可靠传输机制,能保障数据完整性。

由于发送的是png图片文件,而 png 格式图片具有固定的文件头标识(十六进制 89 50 4e 47 ), 因此可通过 Wireshark 的二进制数据搜索功能,精准定位该图片的传输数据包。

tips: 若图片文件为 jpgjpeg ,那么应该搜索的文件头为 FFD8 ,原理一致。

搜索 8090 找到对应 的包,追踪 tcp 字节流

另存为 test.png

用 010 editor (如果有Winhex也可以,一样的原理)打开,搜索文件头 89 50,把前面的内容删除,保存。

打开修复后的 test.png图片可正常显示,证明该次传输为明文

然而,仅能还原自己发出的图片,而无法还原好友发送的图片

这表明:

  • 本地发出的文件可能未加密,以便快速上传;

  • 接收的流量已被加密,无法提取原始文件头。

文本消息

再次进行捕获,这次发送多条消息 helloworld

进行搜索并未能发现明文内容,所以内容被加密了。

总结

问题

结论

UDP or TCP?

QQ 主要使用 TCP 传输消息和文件;UDP 仅用于辅助功能,占比极小。

加密 or 明文?

混合状态
本地发出的部分文件(如图片)可能以明文或弱封装形式上传,可通过文件头还原;
接收的消息和文件几乎全部加密,无法通过 Wireshark 直接解析;
• 文字消息全程加密,无明文泄露。

局域网是否更“透明”?

即使在同一局域网,接收方向仍加密,说明 QQ 不因网络环境改变安全策略。

声明

本文所述QQ流量捕获与分析实验,仅为计算机网络技术学习研究之目的,严格遵守相关法律法规及平台协议。实验数据均为个人合法操作产生,仅用于技术分析,不涉及第三方信息或违规行为。严禁利用本文内容从事危害网络安全、侵犯他人权益的活动,否则需自行承担法律责任。若存在侵权或违规内容,敬请联系删除。