*本文以微信“看一看+”小程序为例,仅做网络协议研究和学习使用,切勿用于不当商业用途。
具体步骤在第二节,可略过第一节。
准备好需要下载视频的微信小程序链接。
分享/转发微信小程序的链接,方便自己可以快速访问。
本文采用的是3.1.0.72版本的电脑版微信。
在Wireshark官网的下载区(),根据实际情况选择适合的版本,安装默认勾选的所有选项,完成安装。
本文中采用的是3.4.3版本的Wireshark(基于本人64位Windows 10的操作系统),安装程序后占180M左右存储空间。
3、记录本机“IPv4地址”
使计算机连接网络,在任务栏单击“Internet 访问”图标。
单击此时网络连接方式的“属性”,在“属性”模块下可查看本机“IPv4地址”(192.168.X.X)。
0、关闭非必要开启的程序
建议只开启微信、Wireshark网络分析器和安全防护软件。
避免其它软件(如浏览器、聊天软件)上下传输大量信息,产生大量流,干扰视频流的获取。
1、打开“Wireshark网络分析器”,在当前网络连接方式下开始抓包
(1)进入软件首页界面(即欢迎界面),选择当前计算机网络连接。
如何选择计算机网络连接的方式?
选择“不规则波浪形”的,不选择“直线形”的。
有线宽带下,选“本地连接* X”或者“以太网* X”(X为数字)
(2)双击进入,或者右键点击“Start capture”,启动抓包。
(1)主工具栏上,先点击左上角的红色“停止捕获分组按钮”(方块按钮),再点击蓝色“开始捕获按钮”(鲨鱼背鳍按钮),选择“直接退出,不保存”清空历史记录,正式开始抓包。
(2)点击小程序链接,进入"看一看+"视频播放界面。
3、视频自动播放一段时间后,拖动进度条
为了能准确地抓到,使其请求数据,提高成功率,可在播放中往后(右)缓慢拖动进度条。
拖到进度条中间,不要拖到最后(最右)。
(1)等到分组列表中出现大量“Protocal”(协议名称)为“TCP”的流时,再点击一次红色“停止捕获分组按钮”(方块按钮)。
“TCP”流:底色为浅紫/淡绿的行,在“Protocal”协议列下显示为“TCP”。
(2)用抓取过滤器进行过滤,过滤掉无用流,锁定少部分适合追踪的流。
5、选择封包列表中的一行TCP流,进行追踪
(1)选定符合下列标准的一行流。
a. 拖行“分组列表右侧的滚动按钮”至滚动栏中下方,观察追踪流过程里靠中后时间段(视频播放了一段时间的时候)的流
b. “Protocal”协议名称:为“TCP”——在封包列表中,浅紫色/淡绿色流集中大量出现的区域
e.“Info”信息:有显示Len,且Len≠0——字节长度≠0
(2)在此行上单击右键,先选择“追踪流”,再选择“TCP流”,进入到追踪TCP流的界面。
*注意:本教程中的视频地址,仅作为例子阅读学习,不需实际访问。且受限于教程作者访问时的网络配置和软件数据,阅读者实际访问地址时很可能会被拒绝。另为了隐私和安全,请登录自己的微信账号,在自己的微信界面中进行流解析和视频提取。
6、复制提取到的视频源址,到浏览器地址栏
协议类型://服务地址:端口号/路径(?询问)
[注意]“端口号”可省略,“?询问”不是必需;“路径”可以无限延展,“”在追踪流时一般会隐藏。
(1)提取视频流的网页地址的前段,即服务地址:端口号部分,打开新浏览器标签页,并复制到地址栏。
位置:红底红字代码块的第二段,“Host: ”后的地址片段
*注意:不复制“Host: ”这几个字符,不复制“Host:”后面的空格
(2)提取视频流的网页地址的后段,即/路径?询问部分,在刚才复制的地址片段后面,复制现地址片段至地址栏。
位置:红底红字代码块的第一段,从“GET ”到“ HTTP/1.1”之间的地址片段
*注意:不复制“GET ”、“ HTTP/1.1”这些字符,不复制“GET”后面、“HTTP/1.1”前面的空格
*注意:一般地址片段中含有“mp4”等视频格式英文字符,不含视频格式的英文字符的地址可能是提取错误,请返回上方步骤“5、选择封包列表中的一行TCP流,进行追踪”,选择新流或者重新捕获流进行追踪
(3)由于前段网址+后段网址拼接,完整视频源址URL提取成功。
7、进入视频播放页面,保存视频
(1)在地址栏中回车,稍等后视频自动播放。
(2)在视频上单击右键,选择“视频另存为”;输入文件名和保存路径后,下载视频。
*本教程的技术方法经过验证,可正常下载各个上传者的视频。尤其是在微信和Wireshark软件版本相近、配置相似的情况下。
*排查方法已写明如下,方便各位朋友排查,不必再询问作者为什么下载错误了~
(1)下载的文件是正确,只是误将图片格式的“动画”,认为是视频格式。
→需确认原“动画”是多媒体文件,而不是图片文件
a)所有多媒体文件(MP4、MPEG、AVI、ASF、MOV、WMV、FLV等格式)是多张图像的动态连续变化,是视频;
某些图片文件(gif等格式)也是多张图像的动态连续变化,看起来像短视频,实际是图像。
b)大部分图片文件(bmp、jpg、png、svg、psd等格式)是一张静态的图像。
(1)追踪的流列表不是完整的,被过滤器滤掉有效信息。
→“停止捕获(抓包),加过滤器滤掉无用流”这一步骤出错
a)软件在过滤器工具栏中自动生成了过滤器,请关闭这一过滤器,保留全量追踪到的流。
常见自动过滤代码格式为:tcp.stream.eq XX(X为数字)。
b)安装了其它监听软件或者开发软件,占用了默认TCP的80端口,使得默认通用的过滤器过滤错误(过滤掉有效端口信息,保留无效端口信息)。
(2) 选定的流不是符合追踪标准的、要下载的视频的流,追踪到的流是其它视频的数据。
→“选择封包列表中的一行TCP流,进行追踪”这一步骤出错
a)没有关闭其它聊天通讯程序(如QQ、钉钉),或者微信也在同时发送其它视频或动画表情。
追踪视频的流是动态追踪,在此过程中,微信和其它聊天通讯程序也在实时刷新,追踪到的视频的流可能是其它正在传送的视频或动画的流。
获到的地址其实不是微信“看一看+”的视频的地址,而是微信其它对话、或者其它程序里传送的视频或动画的地址。
b)想要下载的视频实际已经播放完毕,捕获到的视频地址不是第一个打开的视频的地址,实际是下一个(自动播放)的视频的地址。
“看一看+”小视频一般较短,使用Wireshark时,要注意准备好后再开始捕捉,并及时停止捕捉。
(3)其它未按照本教程操作,而产生的错误
→重新进行第二节的操作,多次尝试捕捉不同的正常流,避开错误或异常的流。
a. 对源地址进行过滤
b. 对目的地址进行过滤
c. 对源地址或者目的地址进行过滤
e. 针对端口的过滤(视传输协议而定)| 捕获某一端口的数据包(以TCP协议为例)
f. 针对长度的过虑(长度指数据段的长度)
可以粗略地看到,黑色背景代表各类错误,红色背景代表各类异常,其它颜色代表正常。
即TCP解析出错,通常重传,乱序,丢包,重复响应都在此条规则的范围内。
生成树协议的状态标记为0x80,生成树拓扑发生变化。
ICMP协议错误,协议的type字段值错误。
条件中的各类协议的checksum异常,在PC上抓包时网卡的一些设置经常会使Wireshark显示此错误。
HTTP协议,这是很简陋的识别方法。
TCP连接的起始和关闭。
系统调用及系统事件等系统活动。
Wireshark是世界上最广泛使用的网络协议分析器。Wireshark软件是免费安装的。
- 业界最强大的显示过滤器
- 可以从以太网,IEEE 802.11,PPP / HDLC,ATM,蓝牙,USB,令牌环,帧中继,FDDI等读取实时数据(取决于使用平台)
- 可以将着色规则应用于数据包列表,以进行快速,直观的分析
- 输出可以导出为XML,CSV或纯文本
本教程所下视频,都是网络上公开访问和分享的视频;若下载时提示有无版权或禁止下载的提醒,请遵守视频方的规定、停止下载。
本下载视频的方法,仅用于学习研究,所下视频不得用于商业盈利。
如有侵权,请联系本作者修改或删除。