用wireshark捕获QQ数据包,并将发送的图片还原
我使用的是新版的QQ。
做这个作业的同时,我们要先搞清楚QQ使用的是UDP还是TCP传输,是加密传输还是明文传输。
(1)首先,我们要将自己的电脑和手机连接到同一个网络,记录下自己手机的IP和电脑的IP。
点开wireshark,点进WLAN,再使用QQ发送图片(我发送的是jpg图片),再返回wireshark,停止捕获。

图片只截取了部分内容,从中可以看到协议大多是TCP和TLS,这说明QQ使用的是大多使用TCP传输,但是我查找的资料显示:QQ即时聊天文字、心跳包、音视频:UDP(8000端口为主),UDP无连接,速度快,适合即时通信。
QQ大文件传输:部分会切换TCP,保证可靠传输,。
所以QQ其实两种都用,以UDP为主,部分文件传输使用TCP。
但新版QQ大量场景已转向TCP。
图片中还有TLSv1.2协议等,说明QQ是加密传输的。
接下来我们要进行图片还原操作。
(2)我们在应用显示过滤器的灰色文字处输入ip.addr==自己的IP,过滤之后,右键一个较大的数据包,点击追踪流,点TCP流。
这时弹出了一个窗口,上面一堆乱码数据,我们看到整个对话那里,选择你自己的IP发送到另一个设备的IP,在Show data as里选择原始数据,另存为后缀为.jpg的文件名,点击保存。
之后我们打开刚刚保存的这张图片,发现打不开。
(3)要将这张照片还原,首先要知道保存图片的正常格式。
我们可以拖拽一张正常的图片进winhex,发现界面的右侧开头有JFIF的数据,并且左侧界面的开头是FF D8 FF,这也就是说,如果在你保存的那张图片找到了这两个特征,说明你找对了。
所以我们再将自己从wireshark里保存的图片拖拽进winhex里,如果肉眼找不到的话,可以在搜索(s)里的点击查找十六进制数值输入FFD8FF,进行查找。


但是我尝试过很多次,要么就是查找不到,要么就是文件太大,根本删不掉FFD8FF前面的数据,并且也没有JFIF的标识。
所以我这个实验失败了。
这是不是说明了要使用新版的QQ进行图片还原,难度还是挺大的?
以上内容全为本人个人课程作业,如果有人有意见指导或者有成功案例愿意分享,可以告诉我,一直欢迎你的私信。
浙公网安备 33010602011771号