|

楼主 |
发表于 2012-7-13 11:19:28
|
显示全部楼层
狼魂 发表于 2012-7-13 00:55
登陆原理是什么?
这个是登录QQ网页的,而不是登录QQ聊天。以QQ:1204374365登录为例:
1.输入QQ和密码之后,第一步先验证是否需要输入验证码:xmlhttp以GET方式访问http://check.ptlogin2.qq.com/check?uin=1204374365&appid=1006102&r=0.3101203359912048
如果返回如下文本
ptui_checkVC('0','!1QT','\x00\x00\x00\x00\x47\xc9\x4b\x5d');
其中有'!***'就说明可以免验证码,即!***直接当作验证码使用。UID为\x00\x00\x00\x00\x47\xc9\x4b\x5d
如果返回这样的文本
ptui_checkVC('1','667943de775c9c5ae322d676919fd3e8939d6be9e991daff','\x00\x00\x00\x00\x47\xc9\x4b\x5d');
就说明需要验证码了,此时访问http://captcha.qq.com/getimage?aid=15000101&uin=1204374365&0.31868593261628586,
读取验证码并显示。UID依旧还是不变的。
2.输入验证码后,需要进行密码加密计算:
我们在网页登录QQ时,加密的算法都在JS文件里(这个抓包就能得到),所以这里就直接调用JS函数进行加密计算。
3.xmlhttp以GET方式访问http://ptlogin2.qq.com/login?ptlang=2052&u='+QQ号+'&p='+加密后的密码+'&verifycode='+验证码+'&css=http://imgcache.qq.com/ptcss/b2/qzone/15000101/style.css&mibao_css=m_qzone&aid=15000101&u1=http%3A%2F%2Fimgcache.qq.com%2Fqzone%2Fv5%2Floginsucc.html%3Fpara%3Dizone&ptredirect=1&h=1&from_ui=1&dumy=&fp=loginerroralert&action=2-14-13338&g=1&t=1&dummy=
就可以了。
|
|