windows微信协议|PC微信协议829版

news/2024/11/24 3:55:27/

最新windows协议|PC微信协议829版采用最新算法,达到非常稳定的效果,自己研发,功能多,并发量高,稳定好用,不掉线,不封号。mmtls是基于1.3的tls协议简化修改而来,根据某公司的描述,这种安全可行,用于短连接的安全模式,也给了其他的公司启发,一方面,使用https在越狱root环境下,也容易被窥探,所以开发一种通用而安全的短连接加密协议,确实有些必要,我们想看看到底是如何实现的,所以抓个包,PC协议下数据来看看。

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

2、获取登录二维码

访问网址:https://login.weixin.qq.com/qrcode/XXXXXX

这里的XXXXXXX就是我们刚才获取的uuid,这个网址直接显示的就是二维码

3、查询是否扫描二维码登录

显示了二维码以后,用户必须用手机微信扫描这个二维码才能登录。(有人会说微信为啥要这么设计?很奇怪的思维。我用电脑很多情况不就是因为手机没在旁边吗。其实是因为安全的考虑)

使用get方法,查询地址:https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?uuid=XXXXXX&tip=1&_=时间戳

这里的XXXXXX是我们刚才获取的uuid,时间戳同上。tip在第一次获取时应为1,这个数是每次查询要变的。

如果服务器返回:window.code=201,则说明此时用户在手机端已经完成扫描,但还没有点击确认,继续使用上面的地址查询,但tip要变成0;

如果服务器返回:

window.code=200

window.redirect_uri='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

则说明此时用户在手机端已经确认登录,window.redirect_uri=后面的这个网址要记下来,接着要访问这个地址。

如果服务器返回:window.code=408,则说明等待超时,继续使用上面的地址查询,但tip=1

4、访问登录地址,获得uin、sid、pass_ticket、skey

用get方法,访问在上一步骤获得访问地址,并在参数后面加上:&fun=new,会返回一个xml格式的文本,类似这样:

<error>

<ret>0</ret>

<message>OK</message>

<skey>xxx</skey>

<wxsid>xxx</wxsid>

<wxuin>xxx</wxuin>

<pass_ticket>xxx</pass_ticket>

<isgrayscale>1</isgrayscale>

</error>

把这里的wxuin,wxsid,skey,pass_ticket都记下来,这是重要数据。

采用UDP协议,通过服务器中转方式。因此,现在的IP侦探在你仅仅跟对方发送聊天消息的时候是无法获取到IP的。大家都知道,UDP 协议是不可靠协议,它只管发送,不管对方是否收到的,但它的传输很高效。但是,作为聊天软件,怎么可以采用这样的不可靠方式来传输消息呢?于是,腾讯采用了上层协议来保证可靠传输;如果客户端使用UDP协议发出消息后,服务器收到该包,需要使用UDP协议发回一个应答包。如此来保证消息可以无遗漏传输。之所以会发生在客户端明明看到“消息发送失败”但对方又收到了这个消息的情况,就是因为客户端发出的消息服务器已经收到并转发成功,但客户端由于网络原因没有收到服务器的应答包引起的。
 


http://www.ppmy.cn/news/541262.html

相关文章

Codeforces Round #829 (Div. 1) C.Wish I Knew How to Sort(概率dp/期望线性性)

题目 给一个长度为n(n<2e5)的01串&#xff0c;每次随机选两个不同的下标(i,j)&#xff0c; 若ai>aj&#xff0c;则交换&#xff0c;问序列排成增序的期望次数&#xff0c;答案是一个分数&#xff0c;对998244353取模 实际是t(t<1e5)组样例&#xff0c;但n的总长不超…

Codeforces Round #829 (Div. 2)E - Wish I Knew How to Sort(dp期望)1024水个题解,最近感觉没什么时间刷算法

题意&#xff1a; 给你一个01组成的序列&#xff0c;现在让你进行两两交换后&#xff0c;让序列非递减。求操作的期望 思路&#xff1a; c n t 0 cnt0 cnt0&#xff1a;我们统计有多少个0在序列中&#xff0c; 那么最终的序列要保证前 c n t 0 cnt0 cnt0个都是0&#xff0c;…

Codeforces Round #829 (Div. 2)

A. Technical Support 题目链接&#xff1a;Problem - A - Codeforces 样例输入&#xff1a; 5 4 QQAA 4 QQAQ 3 QAA 1 Q 14 QAQQAQAAQQQAAA样例输出&#xff1a; Yes No Yes No Yes题意&#xff1a;给定一个长度为n的字符串&#xff0c;字符串中的所有字符都是Q或者A&#…

Codeforces Round #829 (Div. 2) A~D

比赛链接&#xff1a;Dashboard - Codeforces Round #829 (Div. 2) - Codeforces 目录 A. Technical Support B. Kevin and Permutation C1. Make Nonzero Sum (easy version) C2. Make Nonzero Sum (hard version) D. Factorial Divisibility A. Technical Support …

829考纲 数据结构部分

1.数据结构基本概念及简单算法分析 &#xff08;1&#xff09;数据结构基本概念 &#xff08;2&#xff09;算法的定义、特性 &#xff08;3&#xff09;简单的算法分析&#xff1a;时间复杂度、空间复杂度 2.线性表 &#xff08;1&#xff09;顺序表和链表的存储与基本操…

用Java编程开发“六级单词强化记忆”游戏

&#xff08;0&#xff09;在网上下载英语六级词汇表&#xff0c;中英文对应。保存在服务器端&#xff0c;服务器可以让1个客户端连入。客户端初始分数为10分。 以下功能1和功能2&#xff0c;选做1个。功能3必做。 &#xff08;1&#xff09;功能1&#xff1a;根据中文补齐英…

面试

Sony笔试题   1&#xff0e;完成下列程序   *   *.*.   *..*..*..   *...*...*...*...   *....*....*....*....*....   *.....*.....*.....*.....*.....*.....   *......*......*......*......*......*......*......   *.......*.......*.......*.......*...…

2002年手持设备发展展望?

<script type"text/javascript"> google_ad_client "pub-8800625213955058"; /* 336x280, 创建于 07-11-21 */ google_ad_slot "0989131976"; google_ad_width 336; google_ad_height 280; // </script> <script type"t…