无名商城论坛

搜索
查看: 341|回复: 0

[其他技术] 【JAVA】QQ空间协议分析~扫码登录

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 18:48:54 | 显示全部楼层 |阅读模式
刚好开学空闲时间较多,打算写一套QQ空间协议分析系列的文章记录一下。

需要有一点点的编程基础,纯小白观看可能会引起不适 !

  
演示环境/工具:
win10/Eclipse  

计划/目标:
        从登陆到对QQ空间所有功能进行分析 。 (我只是对实现的过程进行讲述,具体代码的实现得大家自己手动)

        欲善事必先利器,建议开始写时将基础框架写好。QQ空间无非就是GET,PSOT,Cookie只要将处理这些处理好剩下的一切都很简单了。

为什么选择扫码登录呢?
               
        扫码登录方式最简单,账号密码登录会有滑块验证有时还会有设备锁验证必须要扫码才能登陆!So,账号密码登录方式的先往后稍稍

Action

扫码登录的流程:
1. 获取二维码图片
2.从Cookie中将qrsign值取进行计算结果就是ptqrtoken -- 该值监听二维码状态时需要
2.1.获取ptqrtoken的算法
3.二维码状态监听(共四个状态,二维码未失效、扫描未确定登录、已确定登录、二维码已失效)
4.当监听到确定登录后进行以下操作
4.1. 取出确定登录的Cookie
4.2. 确定登录后在返回信息中有一个RediractUrl,我们将它取出来
4.3 用确定登录的Cookie访问RediractUrl (需要禁止重定向访问)
4.4 访问RediractUrl之后得到的Cookie和以上步骤的Cookie进行合并,登录就算完成了!此时此刻就可以去

--end
   
1. 获取二维码图片【GET】:
    Url:
本帖隐藏的内容需要【资源会员】才可浏览,您需要升级才可浏览,点击这里升级【资源会员】

       访问并将图片保存至本地,将Set-Cookie(返回Cookie)记录
   
2.从Cookie中将qrsign值取出进行计算,得到的结果就是ptqrtoken -- 该值监听二维码状态时需要:

   为了节省时间直接上代码
        /**
         * 计算qrsign得到Ptqrtoken
         * @Param qrsign
         * @return
         */
        public String getptqrtoken(String qrsign) {
                int e = 0;
                for (int i = 0; i < qrsign.length(); ++i) {
                        e += (e << 5) + (int)(char)(qrsign.charAt(i));
                }
                return (2147483647&e)+"";
        }
3.二维码状态监听(共四个状态,二维码未失效、扫描未确定登录、已确定登录、二维码已失效)【GET】:
本帖隐藏的内容需要【资源会员】才可浏览,您需要升级才可浏览,点击这里升级【资源会员】

Response:ptuiCB('66','0','','0','二维码未失效。(1181763324)', '')

当监听到登录成功后,注意以下点:
4.1. 取出确定登录的Cookie
4.2. 确定登录后在返回信息中有一个RediractUrl,我们将它取出来
4.3 用确定登录的Cookie访问RediractUrl (需要禁止重定向访问)必须禁止重定向否则将取不到Cookie

分析步骤如图:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表