微信HOOK协议实现拉群功能

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

自己开发程序来收发微信,整个流程基本如下:

1、获取会话UUID

微信Web版本不使用用户名和密码登录,而是采用扫描二维码登录,所以服务器需要首先分配一个唯一的会话ID,用来标识当前的一次登录。

使用get方法,通过请求地址:https://login.weixin.qq.com/jslogin?appid=wx782c26e4c19acffb&fun=new&lang=zh_CN&_=时间戳

其中,时间戳这个值是当前距离林威治标准时间的毫秒。

get成功,则返回:window.QRLogin.code = 200; window.QRLogin.uuid = 'XXXXXXX'

其中的XXXXXXX就是我们需要的uuid

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=后面的这个网址

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值