微信网页版的通信协议,很多人都想自己写了个程序,实现微信的登录、初始化、读取联系人列表、发送微信、接收微信等功能,其实大家在网上看一下也有不少人做过这方面的内容。我主要用的工具是HTTPAnalyzer,我认为这个是目前分析http/https协议最好用的工具了,比wireshark和fiddler都清晰明确,推荐大家分析http/https协议内容使用这个工具。其实分析了协议自己再写代码就很容易了。

我们如何入手分析呢?
1.抓包
抓包显然是没有办法看到啥的,不过我们只关心短连接,所以我们需要一个环境来触发短连接的mmtls初始化,而且我们只关心mmtls,并不关心其他的信息,所以,我们可以利用一个早期版本,理由是,早期版本可以屏蔽掉长连接,而强制使用短连接。
2.算法
显然我们应该先对算法,有一些了解,甚至我们应该先阅读一下github上的tls1.3的实现,这样我们才能对tls1.3的答题轮廓有些印象,在我们逆向分析的过程中,省去很多的麻烦,所以我们应该先了解以下算法,包括以下算法的原理和使用。

ECDH(ecdh主要用于秘钥协商,签名验证)
AESGCM(aes gcm 带校验的aes加密算法,相比于之前的aes cbc要更安全)
hkdf扩展(hkdf扩展是用来扩展秘钥的)
sha256(哈希算法,基本上用于验证数据)
hmac(签名)
Hook

在微信的登录请求中,有个rqt(Reliability Qualification Test)算法,在微信风控中扮演着重要角色,根据这个算法,可以对登录微信的环境可靠性进行判断,做为是否是外挂的重要依据。当然,除了这个算法,24字段里面的那么多子字段也是风控的依据。7.0.x版本的rqt比较简单,8.0.x版本的rqt就比较复杂了,不过也是可以搞定的。

8.0.x的rqt算法,入口函数与7.0.x一样,也是先求md5值,再对md5进行处理。

接着进行魔改后的SHA*算法。

再接着,跟0x85来了一些运算。

最后,使用了类似7.0.x的处理,才得到最终结果。

最终结果,7.0.x的rqt值是以0x21开头,8.0.x的rqt值是以0x42开头。

因为对于如下式子


1
(r1 << 5 | key & 0x1f) << 24

7.0.x版本,r1=1, key=1,所以

1
1 << 5 | 1 & 0x1f) << 24 = 0x21000000

而对于8.0.x,r1 =2, key=2,所以

1
2 << 5 | 2 & 0x1f) << 24 = 0x42000000

可以看出来,算法难度比7.0.x版本高多了。

ipad协议827版技术分析相关推荐

  1. 微信ipad协议稳定版826的底层逻辑

    什么是ipad协议 关于这个问题我觉得可以从以下几个方面分析 其实就是模拟ipad端微信的人工操作,跟微信服务器通信.协议的关键点主要是PB协议.mmtls.06加密算法.rqt算法.aes加密.rs ...

  2. 微信iPad协议-超稳定不封号版

    前言 微信协议就是基于微信IPad协议的智能控制系统,利用人工智能AI技术.云计算技术.虚拟技术.边缘计算技术.大数据技术,打造出智能桌面系统RDS. 智能聊天系统ACS .智能插 件系统PLUGIN ...

  3. iPad协议接口-稳定版

    微信协议就是基于微信IPad协议的智能控制系统,利用人工智能AI技术.云计算技术.虚拟技术.边缘计算技术.大数据技术, 打造出智能桌面系统RDS. 智能聊天系统ACS .智能插 件系统PLUGIN . ...

  4. ipad协议,接口稳定版

    微信协议就是基于微信IPad协议的智能控制系统,利用人工智能AI技术.云计算技术.虚拟技术.边缘计算技术.大数据技术, 打造出智能桌面系统RDS...

  5. 计算机网络协议测试技术分析

    摘要:介绍了协议 测试技术以及相关标准进展情况,着重介绍了协议一致性测试和互操作性测试,分析了二者的差异,明确了它们之间的关系.便于进一步理解协议测试技术. 关键词:协议测试:互操作性测试:计算机网 ...

  6. 蓝牙协议分析(5)_BLE广播通信相关的技术分析

    蓝牙协议分析(5)_BLE广播通信相关的技术分析 作者:wowo 发布于:2016-5-27 16:15 分类:蓝牙 1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大了对广 ...

  7. 美国爱因斯坦计划技术分析

    [本文与2014年6月16日再次编辑,增加了一个续文的链接] [本文于2011年8月30日再次更新,修订并补充了有关爱因斯坦3的一些内容] [本文于2011年8月20日更新] [前言]本文始于对网络安 ...

  8. BT和eMule下载协议的比较和分析

    转载:http://www.yuanma.org/data/2008/0420/article_3009.htmBT和eMule下载协议的比较和分析     由于从事P2P下载引擎开发得原因,对BT和 ...

  9. 微信iPad协议稳定

    1.什么是 ipad协议 微信协议是一种基于个人wx的提供开发api能力的机器人接口,该协议实现了80%的wx的功能,通俗来讲,就是可以基于这个api接口能力,开发出基于微信的各类应用平台和服务,后面 ...

最新文章

  1. 愿疫情早日过去,向那些在疫情战斗中牺牲的战士致敬
  2. python gui选择_Python之GUI的最终选择(Tkinter)
  3. nginx反向代理原理及配置详解
  4. Task04:青少年软件编程(Scratch)等级考试模拟卷(一级)
  5. torchvision nms
  6. amixer 如何切通道_三峡工程如何突破技术难题?
  7. 深度解密Go语言之sync.pool
  8. 常见的 OOM 原因及其解决方法(OutOfMemoryError)
  9. 深入进货单-价格跟踪----宇然电脑公司管理软件
  10. 每日一题(19)—— 用变量a给出下面的定义
  11. vue 执行函数this_在vue中使用回调函数,this调用无效的解决
  12. 服务器网卡有什么作用,服务器网卡的作用
  13. python 金融可视化_Python数据分析:金融数据可视化
  14. 如何使用简单的接入点扩展您的Wi-Fi网络
  15. 照片墙模板 html,照片墙模板(ppt照片墙模板)
  16. 节约里程法java代码,智慧职教: 在配送路线优化的节约里程法中有几个基本的假设前提条件,他们是()。...
  17. ssm框架组件及介绍
  18. MQ消息队列(五)——RabbitMQ进阶 MQ集群+集群的部署+集群的扩容
  19. Spyder中不能输入中文注释
  20. 睡个“好”觉,还真是有益身心胖瘦的

热门文章

  1. Ubuntu中docker的安装和使用
  2. 被称为世上最经典的25句话
  3. 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: Shared Memory Provider, error: 0-管道的另一端上无任何进程
  4. prometheus 配置服务器监控、服务监控、容器中服务监控与告警
  5. 安卓10源码开发定制(29)手电筒控制源码分析
  6. HTTP状态码(2xx,3xx,4xx,5xx)
  7. 社群运营怎么做更有效?
  8. github下载加速的几种方法
  9. GitHub开源神器:教你如何实现 PDF 转 Word
  10. H5打开支付宝小程序