吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9615|回复: 22
收起左侧

[Java 转载] 【Ono】QQ空间协议分析----扫码登录----【1】

  [复制链接]
Ono 发表于 2019-9-10 19:09
刚好开学空闲时间较多,打算写一套QQ空间协议分析系列的文章记录一下。

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

QQ截图20190826180821.png


演示环境/工具:
        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:https://ssl.ptlogin2.qq.com/ptqrshow?appid=549000912&e=2&l=M&s=3&d=72&v=4&t=0.24200843129159022&daid=5&pt_3rd_aid=0
       访问并将图片保存至本地,将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】:
    Url:IDA Console, Courier New, monospace">https://ssl.ptlogin2.qq.com/ptqrlogin?u1=https%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&ptqrtoken=ptqrtoken&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=0-0-1568112411698&js_ver=19081313&js_type=1&login_sig=qrsign&pt_uistyle=40&aid=549000912&daid=5&


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

    当监听到登录成功后,注意以下点:
       4.1. 取出确定登录的Cookie
        4.2. 确定登录后在返回信息中有一个RediractUrl,我们将它取出来
        4.3 用确定登录的Cookie访问RediractUrl (需要禁止重定向访问)必须禁止重定向否则将取不到Cookie
        4.4 访问RediractUrl之后得到的Cookie和以上步骤的Cookie进行合并,登录就算完成了!此时此刻就可以去


二维码登录到此就算完成了,是不是很简单?


给大家看看我的实现,是否很简单明了很舒服的感觉


继文章开头所说的

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





1.
2.step1.png

2.
2.step2.png







免费评分

参与人数 5吾爱币 +4 热心值 +5 收起 理由
爱代码的至尊宝 + 1 + 1 用心讨论,共获提升!
lzw-723 + 1 用心讨论,共获提升!
打驴 + 1 + 1 用心讨论,共获提升!
夏橙M兮 + 1 + 1 谢谢@Thanks!
a'ゞ_情殇 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

简猿 发表于 2021-2-22 09:48
Dream_Peng 发表于 2021-2-8 16:07
其实重要的还是那个  ptqrtoken 的计算方式 是怎么找出来的  其余的都简单,奈何被你零句话带过

通过QQ js里面的(hash33)函数找的
function hash33(t) {
    for (var e = 0, i = 0, n = t.length; i < n; ++i)
        e += (e << 5) + t.charCodeAt(i);
    return 2147483647 & e
}
简猿 发表于 2021-2-24 09:34
Dream_Peng 发表于 2021-2-24 09:13
其实我已经发过了  但是这个函数 我也不知道怎么找出来的 就想知道下 怎么去找这个函数

https://imgcache.qq.com/ptlogin/ver/10233/js/c_login_2.js?max_age=604800&ptui_identifier=000E010D989AA31CE07BA6E98F56BC76012729B221D540BFF0DE375CAC8A

全文搜一下函数就能找到了
13065859526 发表于 2019-9-10 19:26
还不算晚 发表于 2019-9-10 19:50
感谢分享
小猪嘟嘟 发表于 2019-9-10 20:28
什么编程语言写的,没看到
ly765893958 发表于 2019-9-11 11:51
小猪嘟嘟 发表于 2019-9-10 20:28
什么编程语言写的,没看到

java写的  最近刚好在学这个 还看得懂一部分  研究一下
ly765893958 发表于 2019-9-11 12:21
我想实现一下  感觉老哥你代码没给全啊
夏橙M兮 发表于 2019-9-14 10:54
老哥,你在哪学习的呀?
夏橙M兮 发表于 2019-9-14 11:04
老哥,能不能你所涉及到的类全部都写出来呀。比如那个qzoneinterface这个类就没有列出来呀。我实现不了呀。
Ah.Dragon 发表于 2019-9-14 21:36
麻烦楼主分享下全代码啊~~~~我看着你界面好像用的是HBuiliderX吧
头像被屏蔽
卖菜小贩邪魅 发表于 2019-9-20 14:24
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-29 05:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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