首先还是取得验证码,抓包可得:
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&regmaster=&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最新登录算法的更多相关文章

  1. Android应用之——最新版本号SDK V2.4实现QQ第三方登录

    为什么要写这篇博客呢?由于.我在做这个第三方登录的时候,找了非常多资料,发现要么就是过时了.要么就是说的非常不清楚.非常罗嗦.并且非常多都是一些小demo,不是什么实例.甚至连腾讯官方的文档都有这个问 ...

  2. 2015年最新中国知网CNKI免费账号直接入口

    以下是Free9免费资源网小编收集整理的2015年最新中国知网CNKI免费账号直接入口,现免费分享给大家(仅供测试使用),此类文献数据库资源有时效性,希望对您的学习.工作上有所帮助! 中国知网直接入口 ...

  3. web实现QQ第三方登录

    开放平台-web实现QQ第三方登录   应用场景     web应用通过QQ登录授权实现第三方登录.   操作步骤     1  注册成为QQ互联平台开发者,http://connect.qq.com ...

  4. Android之QQ授权登录获取用户信息

    有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开 ...

  5. 2015 - 2020 最新 Linux 命令大全

    # 2015 - 2020 最新 Linux 命令大全 ## VIM 命令模式(Command mode):vi 插入模式(Insert mode):i底线命令模式(Last line mode):e ...

  6. QQ互联登录以及非官方正版应用报100044错误

    QQ第三方登录的时候,显示非官方正版应用,报100044错误:坑1:我们在QQ互联注册成功后需要设置包名和签名,签名是通过官方提供的工具生成的.注意一点:这里的签名是需要由打包签名之后APK生成,我们 ...

  7. 使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样

    使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的 ...

  8. 【第三方登录】之QQ第三方登录

    最近公司做了个网站,需要用到第三方登录的东西.有QQ第三方登录,微信第三方登录.先把QQ第三方登录的代码列一下吧. public partial class QQBack : System.Web.U ...

  9. iOS开发UI篇—模仿ipad版QQ空间登录界面

    iOS开发UI篇—模仿ipad版QQ空间登录界面 一.实现和步骤 1.一般ipad项目在命名的时候可以加一个HD,标明为高清版 2.设置项目的文件结构,分为home和login两个部分 3.登陆界面的 ...

随机推荐

  1. Spring整合Hibernate笔记

    1. Spring 指定datasource a) 参考文档,找dbcp.BasicDataSource i. c3p0 ii. dbcp <bean id="dataSource&q ...

  2. WP自定义字体

    IOS7的数字真的很好看啊,于是想放在自己的应用中.在网上找了下,发现这个字体叫HelveticaNeueLTPro-UltLt,于是随便在某个字体网站下了这个字体.拖到项目里换字体,但是,悲剧开始了 ...

  3. TFTP:简单文本传输协议,BOOTP:引导程序协议

    TFTP:简单文本传输协议,BOOTP:引导程序协议 1.TFTP:      TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用 ...

  4. LAMP on ubuntu12.04 PHP, Apache2, MySQL, Linux ( with phpmyadmin installed)

    there are several procedure which include: 1. Install the packages sudo apt-get install php5 php5-gd ...

  5. DirectX11 SDK下载地址

    http://download.microsoft.com/download/F/1/7/F178BCE4-FA19-428F-BB60-F3DEE1130BFA/DXSDK_Feb10.exe 拿走 ...

  6. .Net 中的反射机制

    .Net 中的反射机制 概述反射 通过反射可以提供类型信息,从而使得我们开发人员在运行时能够利用这些信息构造和使用对象. 反射机制允许程序在执行过程中动态地添加各种功能. 运行时类型标识 运行时类型标 ...

  7. hdu 2444

    这道题要先判断图是不是二分图,如果不是的话,就直接输出No,是的话就求最大匹配, 建边是双向的所以要/2 判断二分图:对点进行染色,如果A与B认识,A,B的颜色要不同, 如果出现颜色相同的就矛盾了,就 ...

  8. 安卓开发16:Spinner 下拉列表控件

    Spinner 下拉列表控件 创建一个activity_main.xml文件: <RelativeLayout xmlns:android="http://schemas.androi ...

  9. EL表达式学习

    EL表达式取值 1.EL表达式的语法格式很简单: 以前编写jsp代码时,如果要获取表单中的用户名,一般使用 <%=request.getParameter("name")%& ...

  10. Xcode8出现AQDefaultDevice (173): skipping input stream 0 0 0x0

    一直不想升级Xcode,但是没办法项目进度只能升级Xcode8,果然不出所料出现了不少bug, Xcode7运行一直没有问题,但是在Xcode8上一直输出AQDefaultDevice (173): ...