本帖最后由 derry 于 2019-3-7 23:30 编辑

微信启动后,主要建立以下连接:

1.      建立tcp长链接

端口号:80、443、8080中的一个(微信重启后会切换端口)。

2.      通过http post方式请求 /mmtls/xxxxx 获取朋友圈或其他信息。

3.      通过http get方式下载资源包。

下图为微信启动后部分数据包截图:

微信请求资源.png (43.08 KB, 下载次数: 4)

2017-8-29 11:54 上传

长链接第一个数据包

80端口

微信长连接第一个数据包80.png (66.34 KB, 下载次数: 2)

2017-8-29 11:54 上传

443端口

微信长连接第一个数据包443-2.png (54.62 KB, 下载次数: 2)

2017-8-29 11:55 上传

8080端口

微信启动8080.png (53.83 KB, 下载次数: 2)

2017-8-29 11:55 上传

微信建立的长链接用于聊天,以下为发送消息的数据包

发送微信消息.png (53 KB, 下载次数: 3)

2017-8-29 11:56 上传

微信朋友圈:

微信刷朋友圈时通过HTTP协议POST方式请求资源

资源服务器为szextshort.weixin.qq.com

朋友圈post.png (61.17 KB, 下载次数: 3)

2017-8-29 11:57 上传

微信小视频(包含朋友圈小视频和聊天中的小视频)

1.      客户端发送系统基本信息到服务器,如:微信id、系统版本、联网方式等

2.      服务器回应,返回retcode状态信息。

3.      客户端请求视频文件,在头部也会封装系统基本信息,头部包含了文件类型,其中4为视频文件,详情见图3。

4.      开始下载视频数据。

朋友圈播放小视频.png (65.94 KB, 下载次数: 2)

2017-8-29 11:57 上传

图1(客户端发送系统信息)

小视频1.png (66.47 KB, 下载次数: 2)

2017-8-29 11:57 上传

图2(服务器回应数据报文)

小视频2.png (46.9 KB, 下载次数: 2)

2017-8-29 11:58 上传

图3(客户端请求资源)

小视频3.png (74.59 KB, 下载次数: 2)

2017-8-29 11:58 上传

分析总结:

1.      朋友圈采用http方式获取,可以通过post域中的字段进行识别。

2.      小视频等文件的获取采用tcp协议,负载内容前几个字节固定为

0xab 0x00 0x00 0x00,可以通过协议特征识别。

3.      微信消息发送进行了加密可通过头部识别 0x16 0xf1 0x03 0xf1(注:

目前还不清楚是不是标准的加密协议)

带app过滤功能的openwrt固件请参照我的帖子:

openwrt开发技术文章请关注openwrt公众号

微信数据包解析 php,微信交互数据包分析 - 新手入门及其它(软件) - 恩山无线论坛 - Powered by Discuz!...相关推荐

  1. firmware linux 解包_官改固件解包打包 - 斐讯无线路由器以及其它斐迅网络设备 - 恩山无线论坛 - Powered by Discuz!...

    本帖最后由 eaglepeng 于 2020-3-11 15:23 编辑 前段时间想重新修改下官改固件logo,找到了一份Linux下简单的解包打包工具,后来在逛帖子看到另一个工具.现总结如下,需要的 ...

  2. gson解析mysql城市json数据_Gson解析复杂的json数据

    首先我们需要定义一个序列化的Bean,这里采用内部类的形式,看起来会比较清晰一些: 1 public classJsonBean {2 publicString a;3 public Listb;4 ...

  3. qt与js html进行数据传递,QT与javascript交互数据的实现

    一.数据从QT流向JS 1.QT调用JS的函数,JS通过形参获得QT的值 2.JS调用QT的函数,QT函数的返回值进入JS 二.数据从JS流向QT 1.JS调用QT的函数,QT通过形参获得JS的值 2 ...

  4. matlab数组数据绘图命令,基本绘图命令、数组与数据拟合|Mathematica MathCAD 论坛|MATLAB技术论坛 - Powered by Discuz!...

    2.2        基本绘图命令.数组与数据拟合 2.2.1        基本绘图命令 1. 二维作图函数Plot Plot[函数或函数组,{自变量,下限,上限},选项] 例:画y=sinx在[ ...

  5. 关于微信小程序与Java后台交互数据中中文乱码问题的讨论

    小程序端请求参数中含有中文 如果小程序端发起的请求参数中含有中文,直接发送到后台会显示乱码,需要在header中设置UTF-8编码 wx.request({url: app.globalData.se ...

  6. java 生成json数据_解析和生成JSON数据

    JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值.它对外部(External: 应用toString()方法输出的数值)调 ...

  7. 2020百度大数据竞赛-Top3 故事分享(开源连接)新手入门

    IKCEST第二届"一带一路"国际大数据竞赛" 历时三个月的百度大数据竞赛伴随着夏末的阵阵蛙声终于也迎来了尾声,从初赛16名到复赛第3名,从大数据"小白&quo ...

  8. matlab 计算一组数据的方差分析,多因素方差分析|MATLAB 数学统计与优化|MATLAB技术论坛 - Powered by Discuz!...

    一般来讲,使用anovan函数进行多因素方差分析时,调用格式是第二种形式,{A,B,C,D}里面是没有编码的形式,返回一个方差分析表的形式,不过如果要求精度高的话,似乎不能显示更多的小数点位数. 不过 ...

  9. linux测试包转发率,提高ROS小包转发速率 - RouterOS - 自由的生活_软路由论坛 - Powered by Discuz!...

    小包转发效率低下,这既不是SYN问题,也与QUEUE无关,根源在于: 1. 操作系统对大量随机中断(interrpt)的性能低下:PC体系架构的系统中,网卡接收数据(RECV)基于中断机制(IRQ). ...

最新文章

  1. 你想要的宏基因组-微生物组知识全在这(181101)
  2. 多线程 Thread类
  3. php session redis 配置
  4. 20100519 学习记录:asp CreateFolder/上传附件
  5. 和不安全的Android说再见,Google为它添加新铠甲
  6. 数字时代企业信息安全如何保障? VMware原生安全前来“保驾护航”
  7. SparkMLlib回归算法之决策树
  8. 寻找素数分配线程算法
  9. wordpress如何在多说评论框中设置圆形旋转头像?
  10. ASP.NET 4揭秘.第1卷
  11. python面试题:python计算股票收益最大化
  12. vue实现登录验证码
  13. 如何用开源软件办一场技术大会?
  14. 单点漫延问题(水陆判断、洪水漫延、无权最小路径)
  15. 如何找回回收站清空的重要文件
  16. Linux中su与su - 的区别
  17. 简易搭建阿里云个人简历网站教程
  18. 程序员为什么要时刻保持危机感?
  19. 复旦大学计算机导师评价与简介
  20. 算法竞赛从入门到进阶pdf_ACMICPC/CCPC算法竞赛入门建议

热门文章

  1. 记第七届ACM校赛-回忆
  2. 第一批90后已经爬上胡润富豪榜了,第一批90后已经秃了......
  3. Behance上值得借鉴的设计风格
  4. 使用HTML5/CSS3快速制作便签贴特效
  5. L2-040 哲哲打游戏 (25 分)2021天梯赛c++
  6. 独立IP和共享IP选谁更划算?
  7. 滴滴服务器不稳定,“滴滴崩了”登上热搜!是什么原因导致滴滴崩了呢?
  8. 点云编码是计算机视觉吗,本周新出开源计算机视觉代码汇总(含图像超分辨、视频目标分割、行人重识别、点云识别等)...
  9. 中国筒式过滤器行业市场供需与战略研究报告
  10. 灵魂有香气的女子李筱懿:自律,是追求更高级的快乐