2015 QQ最新登录算法
首先还是取得验证码,抓包可得:
http://check.ptlogin2.qq.com/check?regmaster=&pt_tea=1&uin=2630366651&appid=7000101&js_ver=10113&js_type=1&login_sig=jBX*GEgR-BFtNPRz-Rz6AG1f2PwOqw0ksVxs0gHPEceuRD0e1VBmwdztN-JoAIlY&u1=http%3A%2F%2Fpet.qq.com%2Floginback.html&r=0.4001144212670624
uin是用户名都懂得,login_sig目前还是没堵上可忽略,其中最大的变化就是增加了pt_tea参数,经过分析测试应该是个过度参数,如果为0在登录时一定要求输入验证码,并且采用老算法加密参数。
这也是为什么老程序仍然可以登录,但每次都要验证码的原因,估计不久就要堵上了,所以这里应该赋值1采用新算法。
响应如下:
ptui_checkVC('0','!MOF','\x00\x00\x00\x00\x9c\xc8\x35\xbb','d1f329403a04f3cdcfa2c2edb634bcba803a436ee23330e6d728500550d61349c756894065e5e2ae635c783dd10d3ba1','0');
为了方便叙述,各自段名左到右分别命名为:isverified,vcode,salt,pt_verifysession_v1,pt_vcode_v1
isverified还是指示是否需要验证,0和1分别代表无需和需要。
slat之前叫pt_uin,当使用QQ号登录时还是老含义,既字节化的QQ号,而当使用邮箱登录时返回的字节序列目前不明,分析了下其值是固定的,没找到还原成QQ号的算法,貌似新算法的QQ号都是从cookies里直接取得的。
pt_verifysession_v1就是session验证码,之前一直是摆设现在堵上了,当需要验证的时候这个字段为空,其值需要从cookies中取出。
pt_vcode_v1是新增的,后面会讲到。
vcode在无需验证的情况下含义不变,当需要验证时有了新含义,此时会返回一串字符,之前取得验证码图片时有个cap_cd参数,这次也堵上了,
那么这个参数哪来的呢?就是vcode返回的这串字符了,前面说了需要验证时pt_verifysession_v1为空,当取得验证码后cookies里会多出一个verifysession,没错就是它了。
有了以上参数剩下的就是登录了:
http://ptlogin2.qq.com/login?u=2630366651&p=Bf89JSlQuPB7vtFHxbBdS9-0BH2SPHfv5f3FcRVsPE8TyMT24eTW5GkVxyAoQXqY58fNiMUyCUJ586NasPx8F-m*pvorVhEKRqedsLIqjFr-nZu6e3W6x8*CVUcbb*LS6OhXQSsul70IMpGBUmw0KEJXURnKApOcPeIJXy1bCEaOkLET*realhzlnmsagmNuRZvqobAVGjFw5QVKmAubXw__&verifycode=!MOF&aid=7000101&u1=http%3A%2F%2Fpet.qq.com%2Floginback.html&h=1&ptredirect=0&ptlang=2052&daid=41&from_ui=1&dumy=&low_login_enable=0®master=&fp=loginerroralert&action=1-10-1423480485958&mibao_css=&t=1&g=1&js_ver=10113&js_type=1&login_sig=jBX*GEgR-BFtNPRz-Rz6AG1f2PwOqw0ksVxs0gHPEceuRD0e1VBmwdztN-JoAIlY&pt_uistyle=17&pt_randsalt=0&pt_vcode_v1=0&pt_verifysession_v1=d1f329403a04f3cdcfa2c2edb634bcba803a436ee23330e6d728500550d61349c756894065e5e2ae635c783dd10d3ba1
u是用户名,verifycode和pt_verifysession_v1无需多言,而pt_vcode_v1不要被这货骗了,无论前面返回的是什么,这里都应该是0,而前面进行验证时返回的pt_vcode_v1实际上对应这里的pt_randsalt,这个字段是干啥的呢,
当你用qq号登录时它为0,反之你用邮箱之类的辅助帐号登录时为1,不然登录会失败。
最后的重头戏就是参数p了,它是暗文密码,相较之前简单的MD5几次这次可谓丧心病狂还新增了RSA,我已经逆向出一大半了,可最终还是放弃了,理由很简单新算法可变动的地方较多,随便改改又要花费大把精力重新分析绝比费力不讨好,
那么我们就充分发扬拿来主意吧,反正登录脚本是现成的,伪造document对象或者把脚本改改直接用本地js引擎拿结果就好喽~~~
2015 QQ最新登录算法的更多相关文章
- Android应用之——最新版本号SDK V2.4实现QQ第三方登录
为什么要写这篇博客呢?由于.我在做这个第三方登录的时候,找了非常多资料,发现要么就是过时了.要么就是说的非常不清楚.非常罗嗦.并且非常多都是一些小demo,不是什么实例.甚至连腾讯官方的文档都有这个问 ...
- 2015年最新中国知网CNKI免费账号直接入口
以下是Free9免费资源网小编收集整理的2015年最新中国知网CNKI免费账号直接入口,现免费分享给大家(仅供测试使用),此类文献数据库资源有时效性,希望对您的学习.工作上有所帮助! 中国知网直接入口 ...
- web实现QQ第三方登录
开放平台-web实现QQ第三方登录 应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1 注册成为QQ互联平台开发者,http://connect.qq.com ...
- Android之QQ授权登录获取用户信息
有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...
- 2015 - 2020 最新 Linux 命令大全
# 2015 - 2020 最新 Linux 命令大全 ## VIM 命令模式(Command mode):vi 插入模式(Insert mode):i底线命令模式(Last line mode):e ...
- QQ互联登录以及非官方正版应用报100044错误
QQ第三方登录的时候,显示非官方正版应用,报100044错误:坑1:我们在QQ互联注册成功后需要设置包名和签名,签名是通过官方提供的工具生成的.注意一点:这里的签名是需要由打包签名之后APK生成,我们 ...
- 使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样
使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的 ...
- 【第三方登录】之QQ第三方登录
最近公司做了个网站,需要用到第三方登录的东西.有QQ第三方登录,微信第三方登录.先把QQ第三方登录的代码列一下吧. public partial class QQBack : System.Web.U ...
- iOS开发UI篇—模仿ipad版QQ空间登录界面
iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...
随机推荐
- asp.net mvc4设置area里面使用相同的 Controller 名称并设置area里的页面为起始页
asp.net mvc4设置area里面使用相同的 Controller 名称并设置area里的页面为起始页 1.使用重名controller 在asp.net mvc2以后的版本里面,有了area( ...
- spring不依赖注入得到实体bean
如题,我们一般用spring的ioc,通过配置注入接口得到这个实现类,现在通过研究公司平台框架发现还有一种方法得到spring文件配置的bean方法,举个例子(注:这个ApplicationConte ...
- CoreCLR文档翻译 - GC的设计
此文档来源于CoreCLR的BOTR(The Book of the Runtime), 点击打开原文 一切著作权归微软公司所有 GC的设计 作者: Maoni Stephens (@maoni0) ...
- js如何判断是否在iframe中
JS代码://方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert ...
- JS算法之快排&冒泡
1.快速排序思想: 1.1 先找数组的最中间的一个数为基准 1.2 把数组通过此基准分为小于基准的left数组和大于基准的right数组, 1.3 递归重复上面的两个步骤, 代码如下: functio ...
- iOS设置UITableView中Cell被默认选中后怎么触发didselect事件
//默认选中某个cell [self.searchResultTV selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] a ...
- Linux学习-文件和目录管理
Linux文件和目录管理 文件系统架构 1.Linux文件系统具有层级性 1)文件或者目录起始于根目录"/"成为树状结构 2)最顶层由/开始 2 ...
- (Nginx学习一)安装和启动及对应文件夹介绍
nginx 安装和启动及对应文件夹介绍 1 安装 官网下载nginx文件 http://nginx.org/en/download.html 解压即可 2 文件夹介绍 在解压后nginx压缩包后发现 ...
- Nuget 学习一
初识Nuget 对应C#开发的人员来说, DLL和相关的引用 并不陌生吧,通过手动拷贝DLL 存在很多问题, 比如SOA的实体DLL,开发者和使用者的DLL不一致,就可能存在字段的不一致, 通过Nug ...
- jxl 导入excel
jsp部分 <div class="modal-dialog"> <div class="modal-content"> <div ...