• 因为csdn自动压缩了上传的图片,导致高清图非常的小,稍后将发布可以下载的文档说明 下载地址,可以看到超清的图片,请自行下载
  • (现在经过朋友反应实在太小,重新截了一次图,这次是正常比例,但是改变了高清分辨率,如若需要高清,还是请下载)
  • https://download.csdn.net/download/sos768/11230576


二、实验内容原理实验结果与分析

1.选择微信使用模式(微信App或者网页微信),合理配置网络环境。
【实验步骤】

  • 使用mac进行wireshark抓包,并选择使用客户端微信,同时将机器置于手机热点wifi之下
  • 可以看到当前实验机器获得的ip为 172.20.10.2
    所以当前连接的AP站点ip为172.20.10.1

【实验结果与分析】

配置当前的ip以及微信所在的实验环境,如上图所示

2.分析微信登录认证方式。

【实验步骤】

  • 因为不必要的ipv6的信息传输干扰,所以先屏蔽了一些ipv6的信息
  • 以下是我之前使用的笨方法,一个一个去屏蔽
  • 经过朋友提醒,还可以这么做,直接ip筛选,效果是一样的:

  • 从上图可以看出,我的电脑获得的ip是172.20.10.2,并且网关是172.20.10.1

  • 此时,我的电脑正在发出dns,域名查询的包,之所以是8.8.8.8,是因为我对电脑做了一些配置,如下图所示,我的电脑会默认向一下两个dns服务器发出请求,(10.61.10.10是学校的dns服务器之一emm)。

  • 当我们拆开去解读消息的时候会发现他的query是去查询这个域名 szshort.weixin.qq.com。并且在之后dns返回了查询到的IP

  • 当我打开完客户端,扫了二维码之后但还没在手机按下确认键的时候,我的wireshark抓到了这些包,看样子是在获取二维码和一些相关的信息。

  • 点击确认之后,从抓取的包里面也可以看出,双方在不停的发包并进行ssl加密传输,和一些相关的认证信息。

  • 建立连接,并且获取一些好友队列的信息
    发送post请求进行data验证并且获取消息。

【实验结果与分析】

成功与服务器进行了连接,并且认证成功

3.分析微信好友聊天过程。

【实验步骤】
作为测试,发送了四条消息:

  • 做完实验后,又去查了以下相关资料,原来抓包软件可以进行设置成ip显示成域名,下图是对之后实验的ip更直观的一种显示

握手协议,也是一次认证

  • 一共抓到了以下这些包,经过分析,可以确定此次信息传输是与之前dns查询中查到一个服务器121.51.140.144进行了交互

  • 进行以下筛选,172.20.10.2是我电脑的ip地址

  • 可以看到信息数据干净了许多,继续进行分析

  • 前三个包是在进行tcp三步握手认证,由我的电脑向服务器发送syn请求,服务器收到后发送syn和ack进行确定,最后从客户端向服务器发送ack完成认证。

  • 之后从第20个包开始,便一直在进行交互,不断的进行连接,传送完消息之后客户端的Fin断开连接请求,和之后恢复连接的ack,
    (在发送fin之后,一定时间内,如果客户端和服务端还有数据交互,两者可以恢复连接而不需要再进行三步握手认证)


  • 期间有一次重置,断开连接并且重新进行了三步握手认证进行连接

  • 测试中途发现了一些不是微信服务器的ip频繁出现,如下图中的121.51.8.102,在我使用小号进行测试的时候出现了多次,而且其flags是psh和ack居多(数据传输),然后去ip138.com进行了ip查询,结果与预料相差不大。

  • 查询网站时 ip138.com (仅供参考)

4.分析微信群聊过程。

【实验步骤】

  • 选择了群聊进行分析,一共发送了以下这些信息:

  • 使用121.51.24.106进行ssl加密传输,在中间传输的时候出现了数据重传的情况,说明当不可达时,数据包会自动选择进行重传,直到传输成功。

  • 这一步里面syn同步请求包也在不断的重新发送,直到之后的syn+ack包的确认连接使得连接开始建立,非常经典的tcp三步握手认证。

  • 与和之前的单独私聊的过程几乎一致,只是请求的服务器发生了改变,从121.51.24.144 转换成了121.51.24.101

  • 这是客户端向服务端提交数据和服务端向客户端发送的回应包
    可以看到传送的信息是进行加密之后的,只有提交的data数组 是可以明文可见的,还有服务端的回应中的code等信息是可见的

  • 这些http请求和回应组成了信息交互的大部分过程

5. 总结微信聊天协议

  • 可以发现微信的聊天信息都进行了ssl加密进行传输,并且在选择服务器的时候会选择最近的服务器。更容易发现的是,微信的聊天基于http协议,通过get,post与服务器进行交互,穿插在包里的http响应和请求包足以证明这一点,而当我把传送数据替换成图片时,交互的服务器并没有发生大的改变,依旧是在121.51.24.144和121.51.24.101进行切换交互。

  • 对于微信好友头像的获取,从wx.qlogo.cn和cwx.qlogo.cn里进行get获取

  • 在做完了全部客户端的测试之后,我又去进行了web端的测试,发现传输消息使用的服务器域名为szshort.weixin.qq.com,文字数据和图片的传输,get和post请求,而在调用地图的时候,会转换成另一个服务器去调取数据进行同步。以下是一部分web测试数据。

  • 对web端来说,原来还有一些密文随机数的认证方式,且随时间会发生改变


三、本课程心得及建议

  • 在动手实验的时候,遇到了很多的困难,但在自己的动手实践,和在不断的尝试中获取的知识来看,这是值得的。
  • 在失败中,我收获了许多,巩固了一些基础知识,在复杂的包堆里面找到了正确的包,也学会了如何去过滤一些不需要的包,希望这门课之后会更加的广阔,也希望更多的同学可以收获宝贵的知识。

参考blogs

  • https://www.2cto.com/kf/201611/566019.html 这位博主的blog对https中的SSL/TLS讲解真的让我豁然开朗
  • https://wenku.baidu.com/view/ae65006a192e45361066f58e.html 这个帮助也挺大的,是这篇报告让我找到了bug,没有去找vx获取头像的独立服务器
  • https://blog.csdn.net/dxt1107/article/details/77467751 这篇建议指阅读前半部分,他让我发现了公众号是不加密的
  • https://blog.csdn.net/hezhipin610039/article/details/50099685 这篇是讲http抓包的,对爬虫挺有帮助的
  • https://download.csdn.net/download/zhangmiaoping23/8722179 这是第2个参考的blog里的pdf版本,但是太贵了- -,而且不值得

使用wireshark抓包软件分析微信协议--zucc相关推荐

  1. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

  2. wireshark抓包日志分析--洗号空闲超时案例

    wireshark抓包日志分析 数千线高并发压测时,asr_ring洗号服务报错Session idle too long,意思是洗号这边一直没有收到音频数据直到超时报错.由于缺失日志线索,只能通过w ...

  3. Wireshark抓包——qq分析

    Wireshark抓包qq分析 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用Wi ...

  4. 实验:Wireshark 抓包软件的使用及MAC协议分析

    实验目的 1.理解抓包软件的工作原理: 2.掌握Wireshark软件的安装和使用方法. 3.掌握MAC协议分析的技术与方法 实验任务 1.安装和运行Wireshark软件: 2.使用Wireshar ...

  5. 计网 | Wireshark抓包和分析腾讯视频点播详细过程

    介绍 这次抓包实践的目的是搞清楚腾讯视频Windows客户端在点播视频的时候,视频数据是如何传输来到客户端的. 最终分析得出结论,腾讯视频Windows客户端(具体版本见正文)点播视频时,使用了资源重 ...

  6. 使用wireshark抓包并进行网络协议分析

    前言 今天想通过抓包实验,巩固一下所学习的网络协议.同时,在知识点上会加上以前遇到的一些问题.这次实验并不是对所有的网络协议都进行分析,而是从下面这个问题出发(面试常被问).从这一过程中复习学过的网络 ...

  7. wireshark抓包实验 分析 详解

    Wireshark(Formerly Ethereal) is an award-winning network protocol analyzer developed by an internati ...

  8. tcpdump 抓二层包_可能是我见过的最简单易懂且实用的 TCPDump 和 Wireshark 抓包及分析教程!( 强烈建议收藏 )...

    公众号关注 「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux ! 本文将展示如何使用 tcpdump 抓包,以及如何用 tcpdump 和 wireshark 分析网络流量.文中的例 ...

  9. 使用Wireshark抓包软件提示The NPF driver isn’t running解决办法

    Wireshark一个强大的数据抓包分析工具,在Win7 64位系统上第一次使用时,可能会出现意外的情况. The NPF driver isn't running. 这个情况可能是因为没有安装Win ...

  10. (转)使用Wireshark抓包软件提示The NPF driver isn’t running解决办法

    Wireshark一个强大的数据抓包分析工具,在Win7/10 64位系统上第一次使用时,可能会出现意外的情况. The NPF driver isn't running. 这个情况可能是因为没有安装 ...

最新文章

  1. Django博客系统(用户中心修改)
  2. 2019年计算机一级考试pdf,2019年计算机一级考试试题与答案.pdf
  3. ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
  4. linux apache目录权限配置,Linux系统架构-----Apache的用户访问权限的设置
  5. HDU1542--Atlantis(扫描线)
  6. python代替嵌套列表_python含嵌套的列表去重问题
  7. 关于centos启动报错:Failed to start Crash recovery kernel arming的解决方案
  8. Iconfont的引用与在伪元素中的图标引用
  9. java线程池饱和策略_干货:Java几种线程池的分析和使用。
  10. [转载] python hasattr函数_Python的hasattr() getattr() setattr() 函数使用方法详解
  11. ET代理_切换ip软件网络功能。
  12. phpnow怎么改php版本,phpnow升级php版本的方法
  13. Python-贪心算法 田忌赛马
  14. 制定to-do list的艺术
  15. 3 移动机器人路径规划(1- 栅格地图绘制)
  16. 安装Adobe Flash CS5出错的解决办法(Exit Code: 7 ERROR: Unable to get root from inChildPath)
  17. Windows下Python无法正常卸载:There is a problem with this Windows Installer package.
  18. 由二项分布推导泊松分布中的两个使用公式的证明
  19. 正则表达式中的特殊字符一览
  20. CSDN-MarkDown编辑器的姿势大全

热门文章

  1. 【Multisim仿真】数字电路仿真16路往复流水灯
  2. 现代通信技术之分组交换技术
  3. 高等数学中的求极限公式
  4. JAVA学习,你必读的5本JAVA书籍
  5. appfabric 性能监视篇
  6. H264数据格式解析
  7. Who is in me? -- Freeware on Windows
  8. 科研论文中,图片组合方法和导出高分辨率的方法
  9. flash做动画教程(基础篇)
  10. Unity: 打飞碟简单版