QQ空间登陆协议分析-2014年8月

news/2024/11/29 1:29:51/

在做此工程之前当然也是参考了网上各位前辈的分析原理,最后实际上是分析很简单,但是代码的实现让我着实犯难,毕竟作MFC还没有实际开发过什么项目,敲代码的经验,水平都不是很好,不过最后还是花了一周的时间把这个QQ空间的登陆,留言,发表心情等,都做了出来,后来想着顺带着美化下界面的,于是发现了duilib这个东西,还上论坛发帖问了呢,结果还是不会在vc6上用它,最后的结果就是无果啦,想想还是不去钻这个牛角尖了,毕竟等了我换了这台E40后以后的IDE肯定是要换的,就不去想这些头疼的事了。

说多了,下面给出抓包分析的流程,以及最后总结出的清晰思路。好了,

直入主题:

先从抓包的参数说起:

GET /login?u="+m_qquin+"&verifycode="+m_vcode+"&pt_vcode_v1=0&pt_verifysession_v1="+verifysession+"&p="+encryptionPass+"&pt_rsa=0&u1=http%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&ptredirect=0&h=1&t=1&g=1&from_ui=1&ptlang=2052&action=3-21-1408593390732&js_ver=10090&js_type=1&login_sig=登陆login_sig&pt_uistyle=32&aid=549000912&daid=5&pt_qzone_sig=1& HTTP/1.1\r\n";

(上面这段是我修改过的,自己定义的变量加进去的。)

参数分析:

u = 要登陆的qq号
verifycode = 验证码;
pt_verifysession_v1 = verifysession这个参数在获取验证码时返回的头文件当中
p = js文件中getEncryption()这个加密算法加密过的密码,此函数共三个参数,第一个是明文密码,第二个是转换后的16进制qq号码,以"/x"开头
login_sig = 这个参数应该不是特别重要的
其余参数保持不变即可,省略有可能会提示参数不完整


再说参数:verifysession
"GET /getimage?uin=QQ号码&aid=549000912&cap_cd="+cap_cd+"&0.7347680128262537 HTTP/1.1\r\n";

其中uin是qq号码,aid不需要改变,cap_cd是在检验账号是否需要输入验证码时得到的


再说参数:cap_cd
这个参数是在提交检验账号时的返回内容中checkVC的第二个参数,这个参数是获取验证码的重要参数。
"GET /check?regmaster=&uin=1096521157&appid=549000912&js_ver=10090&js_type=1&login_sig="+login_sig+"&u1=http%3A%2F%2Fqzs.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&r=0.38423943983814745 HTTP/1.1\r\n";

在这个请求当中,自己测试过,什么都不用改就可以,至于这个login_sig,可以从打开页面时的页面中找到,但是我测试随便给个值,最后依然成功登陆。


缕清思路之后,最后的步骤应该为:
1.请求验证账号是否需要输入验证码,返回checkVC中如果第一个参数为0表示不需要,为1则表示需要
2.从返回内容中提取checkVC第二个参数,cap_cd,该参数是作为获取验证码的重要项
3.向服务器请求获取验证码,返回的头文件中取得cookie值verifysession,此项是保证当前登陆和所获取验证码保持一致
4.调用js加密文件中getEncryption(),三个参数分别为:明文密码,转换后的十六进制qq号码,验证码
5.返回文件中第一个参数为0表示登陆成功,返回头文件中保存服务器返回的各项cookie留作后期使用
返回3表示账号密码错误,返回4表示验证码错误,返回7表示提交参数错误


http://www.ppmy.cn/news/559694.html

相关文章

python整合selenium爬取QQ空间访客记录

利用周末放假两天时间写了个QQ空间访客记录的爬虫,在这里分享出来;本文将会把要做的步骤都列出来,一步一步的实现这个爬虫程序。 特别注明: 本程序仅供学习交流目的请勿用于不可描述的事情 爬取过程中需要获取的关键信息如下&a…

QQ空间API接口

2019独角兽企业重金招聘Python工程师标准>>> (以下内容可能会随着时间改变而改变!) 查看对方QQ空间的背景音乐 http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?json=0&uin=QQ号码 json=1 为使用json json=0 为XML --------------------------…

自动访问QQ空间(亮点是程序的美化)

自动访问QQ空间,原理很简单,就是用程序来打开好友的QQ空间, 然后再用程序关闭打开的空间就可以了,网速快的话,一秒钟可以访问N个好友。 本程序代码很简单,没什么好说的。值得一提的是,本程序使…

网络营销技术之——QQ空间访问

QQ空间访问器 原文: http://www.cnblogs.com/txw1958/articles/QZoneBrowser.html 网络营销新技术之QQ空间访问 开始之前,来看三个问题 你的QQ空间是不是允许所有人访问?或者你的某个QQ好友空间允许你访问? 你(或你的好友)的QQ空…

如何在C语言中处理日期和时间?

在C语言中,时间和日期处理是一项非常基础的技能,也是开发实际应用程序时经常会用到的功能。在实际开发中,我们通常需要获取当前的日期和时间,或者对日期和时间进行格式化输出,比如将其转换为字符串,或者将其…

机器视觉工程师,先就业再择业?还是先择业后就业?

机器视觉halcon-胶水缺陷检测 视觉人机器视觉粉丝经常问我,我学完的课程,我可以拿多少钱。 学完,不代表以后不学。一直要学。 学完,不一定就业。就业肯定还要学习。 拿多少钱,要看你们公司底薪在什么位置。所处的城市经济也有很大关系。 课程的学完,代表你对机器视觉很…

Android 13(T) - binder阅读(4)- 使用ServiceManager注册服务

上一篇笔记记录了ServiceManager是如何启动,以及如何在客户端进程中获取ServiceManager的远程代理。这一篇将记录如何使用ServiceManager注册服务以及获取服务,同时了解binder驱动是如何传递数据、调用方法的。 0 前情提要 看过前面几篇笔记我们可以知道…

Intel Core 2 (Penryn)系列处理器简介

Intel Core 2系列处理器采用了45nm晶体管技术,这是晶体管技术上的一个突破。晶体管的密度几乎翻了一番,漏电显著降低。另外,Intel在Core 2系列处理器中对微结构进行了改进,并且引入了新的指令集SSE4。处理器的性能得到增强&#x…