文档搜索 > 利用 Wireshark 软件对微信协议的分析

利用 Wireshark 软件对微信协议的分析

Page 1
利用 Wireshark 软件对微信协议的分析
——QPIC 贾冰杰 1120101251 全然 1120101259 王浩峰 1120101261 (组长) 谢青梅 1120101262 闫郡 1120101263

Page 2
数据通信基础 小组:qpic 2
目录 一.实验规划 ——03 二.实验内容 步骤 1. 配置虚拟 AP: ——04 步骤 2. 分析微信的登陆认证过程 ——05 步骤 3. 分析微信的普通聊天过程 ——06 步骤 4. 微信-附近的人 ——07 三. 实验结论:关于微信协议 1.微信通过内置浏览器和服务器交互数据。 ——09 2.微信的数据传输未加密 ——09 3.微信不同功能有独立的服务器 ——10 4.关于”微信与运营商大战”的思考 ——11 参考文献 ——12

Page 3
数据通信基础 小组:qpic 3
一.实验规划: 1.接入手机,通过 wireshark 抓取微信数据包。 2.分析微信的登陆认证过程 3.分析微信的普通聊天过程 3.分析微信的典型应用——附近的人 4.总结:微信的协议

Page 4
数据通信基础 小组:qpic 4
二.实验内容: 步骤 1、配置虚拟 AP:
由于微信的 pc 网页版本不容易操作,针对本次分析,我们使用 Android 手 机系统下的微信客户端进行操作。通过手机连接至 pc 虚拟的无线网络进行微信 的连接,这样通过 wireshark 软件进行抓包。 win7 系统下可以很容易将无线网卡设置为虚拟 AP,供其他无线设备接入。 配置脚本如下: #Vitual_Wifi_setup.bat netsh wlan set hostednetwork mode=allow ssid="HappyBoy" key=****** #在 GUI 界面下,将正在使用的某个网络连接共享给该虚拟 AP. netsh wlan start hostednetwork netsh wlan show hostednetwork 将手机接入后,可以看到: Number of clients 为 1. 打开 wireshark,能看到在接口列表中已经有虚拟 AP 了(如图)。手机接入 后,打开微信 app,点击开始抓包,就能抓到微信数据包了。

Page 5
数据通信基础 小组:qpic 5
步骤 2. 分析微信的登陆认证过程:
打开微信客户端,微信开始登录,可以看到手机分配到的 IP为 192.168.137.87, AP 站点的 IP 为 192.168.137.1 第一包数据 是一个域名查询,微信客户端向网络查询微信服务器,域名为 long.weixin.qq.com 的 IP 地址; 第二包数据 是 ARP 地址解析,AP 站点向全网广播,询问 192.168.137.87 对 应的 MAC 地址; 第三包数据 是 ARP 应答,手机告诉 AP 站点自己的 MAC 地址; 第四包数据 是第一包 DNS 查询的应答,将该包数据展开,可以看到: 可以看到,查询到微信域名 long.weixin.qq.com 的多个服务器 IP。 接下来 TCP 的通信过程表明,微信客户端选择了 IP 为 120.204.201.154 的主机进行数据 传送。

Page 6
数据通信基础 小组:qpic 6
步骤 3. 分析微信的普通聊天过程
先是建立 TCP 连接:第 5 到第 7 包数据是 TCP 的三次握手 首先客户端向服务器发送标志为 SYN 的连接请求,数据包标号 Seq=0; 收到请求后,服务器向客户端发送了带有 SYN 和 ACK 的确认应答,发送序 号 Seq=0,确认序号 ACK=1;接下来,客户端向服务器发送确认应答,Seq=1, ACK=1. 连接建立完成。 第 8 到第 19 包数据是客户端和服务器之前用 HTTP 协议相互传送了一些数 据。 第 18 包是 HTTP 数据包,它的大小为 314 字节,其中有用数据长度为 248 字节,数据最后一行为空行,表明数据已经传送完毕,如下图所示: 第 20 和 21 包数据是关闭连接。传送完数据后,主机发出带FIN的 TCP报文, 要求关闭连接,客户端发出确认(第 21 包数据),连接关闭。

Page 7
数据通信基础 小组:qpic 7
超时会重传: 第 39 包:未收到第 38 包数据的确认应答,超时后,开始重传; 第 42 包:第 38 包数据仍未收到应答,又超时,重传一次; 第 43 包:终于收到了第 38 包数据的应答。
步骤 4. 微信-附近的人
用 wireshark 抓包得到如下数据 首先是 DNS 解析,展开第二包数据,可以看到

Page 8
数据通信基础 小组:qpic 8
DNS 应答返回了域名 mapi.mapabc.com 的 IP:211.151.71.89 mapabc.com 是北京图盟科技有限公司的网站,是一家致力于互联网地图、 手机地图和相关位置服务的互联网软件技术服务公司,它是高德成员企业。(有 个高德地图的 app) 随后的几包数据,是客户端和该服务器之间相互交换信息。 查询该 IP.发现服务器位于北京。 可以看到,微信客户端的地点信息被收集起来存储在服务器中,当客户端发 送附近的人请求时,服务器调用地图信息,通过计算,得到位于附近的用户数据, 将它们传给该客户端。 附近的人---用户头像下载过程 第 134 包: HTTP 的 GET 请求,展开该包: 将请求的地址输入到浏览器,会看到一个用户头像; 第 135 包 是服务器端的 TCP协议将该头像分段成两段(第 135 包和 136 包), 传送给客户端; 第 136 包 标为 HTTP 包,表示头像传送出去了。 第 137 和 138 包 客户端收到 HTTP 传来的头像后,向服务器发 TCP 确认, 传送完成。

Page 9
数据通信基础 小组:qpic 9
. 实验结论:关于微信协议
1.微信通过内置浏览器和服务器交互数据。 微信在应用层使用 HTTP 协议传输数据。微信的聊天对话框如下,点击网址 链接,会跳转到浏览器模式,打开该消息对应的网页。现在手机 QQ 和微博客户 端都内置了浏览器。而且用 wireshark 抓包发现微信的通信都是用 HTTP 协议收发 数据的,内嵌浏览器为网络通信接口。 2.微信的数据传输未加密 微信只有在输入密码的初次认证过程中的数据是用 SSL 加密传输的。其 他数据,比如聊天数据,地理位置信息等,传输过程都没有加密(源端加密 未知) 总结:微信各个功能的数据传输,几乎全都是用 HTTP 协议

Page 10
数据通信基础 小组:qpic 10
3.微信不同功能有独立的服务器: ①涉及到位置信息,会调用地图,常用的有: map.soso.com 搜搜地图 maps.google.com 谷歌地图 mapi.mapabc.com 高德地图 ②微信的好多图片文件的访问,都是对 wx.qlogo.cn mmsns.qpic.cn 的 ③微信登陆的时候,有两个域名:long.weixin.qq.com short.weixin.qq.com short.weixin.qq.com 是 HTTP 协议扩展 tcp 短连接,运行 8080 port,http body 为二进制。 提供 API: 用户登录验证;

Page 11
数据通信基础 小组:qpic 11
好友关系(获取,添加); 消息 sync (newsync),自有 sync 机制; 获取用户图像; 用户注销; 行为日志上报。 long.weixin.qq.com tcp 长连接, 端口为 8080,类似微软 activesync 的二进制协议。 提供 API: 接受/发送文本消息; 接受/发送语音; 接受/发送图片; 接受/发送视频文件等。 4.关于微信与运营商大战的思考:
TCP 短连接是指通讯双方有数据交互时,建立一个连接,数据发送完成后,则断开此连 接,即每次连接只完成一项业务的发送;TCP 长连接,是指连接建立后保持较长时间而不释 放掉。Android 默认的推送服务,采用的是 Google 的 GCM 技术,其心跳周期约为 28 分钟, 这才是所谓“慢”的含义 —— 尽可能降低心跳的频度,从而达到省电、省流量的目的。 微信客户端与服务器之间的大部分连接都是 TCP 长连接,慢心跳。本来是为了能够给用 户提供即使提醒和通知的方便并为用户节约耗电。但在中国大陆的 2.5G 网络中,如果闲置 超过大概 5 分钟,运营商的 IP 网关会自动释放掉(关闭)连接,心跳周期远远达不到 28 分钟。为此,Android 版本的微信选择以 5 分钟为周期发送心跳连接。这种过于频繁的心跳 连接,加上微信庞大的用户数量,导致了网络信令的严重占用。这是最近微信和网络运营商 之间矛盾的原因之一。而且,每一次心跳,都相当于把手机从待机状态唤醒,以 5 分钟为一 个周期,每天最大约 300 次唤醒,这会严重消耗手机的电量。 因此,从共赢的角度讲,运营商方面,应该升级网络,加速网络建设,合理收费;而腾 讯公司应该优化微信软件,尽量减少网络占用,以期能达到一个平衡。其实微信带来的问题 远不止信令占用这一项,更重要的是,微信的通信模式,使传统的话音业务和短信业务受到 巨大冲击,尤其微信对短信业务的侵蚀非常大,这才是触及运营商利益的最大头 。其实这 也是一个无法避免的发展趋势,通信业的发展重心,已经开始由话音业务转向网络业务,随 着 3G 和 4G 网络的建设,相信微信所引起的矛盾最终会得到解决。

Page 12
数据通信基础 小组:qpic 12
参考文献: 【1】微信分析 http://blog.sina.com.cn/s/blog_5f92b32f0101bi3w.html 【2】微信的研究 http://blog.csdn.net/chief1985/article/details/7902016 【3】微信的研究(二)http://blog.csdn.net/chief1985/article/details/7905540 【4】微信架构(转)http://www.cnblogs.com/SuperXJ/archive/2012/05/29/2523411.html 【5】微信收费事件背后被广泛忽略的技术细节
http://tech.sina.com.cn/i/csj/2013-04-16/09368244003.shtml?bsh_bid=219839275
【6】TCP 协议的一些总结(一)
http://www.cnblogs.com/geekma/archive/2012/10/23/2735944.html
【7】TCP 几个字段含义 http://blog.sina.com.cn/s/blog_566c7d770101e7o7.html 【8】TCP 通信过程简介
http://hi.baidu.com/ncfjlwdvuwbgpud/item/4059b4ec69e865fbe0a5d485
【9】Wireshark 基本介绍和学习 TCP 三次握手
http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#othertool
【10】Wireshark 实用过滤表达式
http://blog.163.com/szy8706@yeah/blog/static/62713185201232631413434/

设为首页 | 加入收藏 | 昂纲搜索

All Rights Reserved Powered by 文档下载网

Copyright © 2011
文档下载网内容来自网络,如有侵犯请和我们联系。tousu#anggang.com
返回顶部