为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

WebQQ协议2.0

2020-03-08 13页 doc 32KB 9阅读

用户头像

is_180829

暂无简介

举报
WebQQ协议2.0Web QQ 2 登录协议 1.检查是否需要验证码; 用Web登录QQ时需要先打开web2.qq.com,但我们用的是应用程序模拟浏览器登录,所以这一步是没有必要的,所以我们主要看看点击“登录”按钮时浏览器向服务器发送什么数据了。Web登录QQ输入帐号输入焦点离开时,有时会提示要输入验证码,那么第一步就是要看看什么样的QQ号需要输入验证码。 地址(GET):********(QQ号码)&appid=1003903(固定)&r=0.9(随机18位) “*********”是我测试用的QQ号,r的值是个随机数,写成固定的也行。 ...
WebQQ协议2.0
Web QQ 2 登录 1.检查是否需要验证码; 用Web登录QQ时需要先打开web2.qq.com,但我们用的是应用程序模拟浏览器登录,所以这一步是没有必要的,所以我们主要看看点击“登录”按钮时浏览器向服务器发送什么数据了。Web登录QQ输入帐号输入焦点离开时,有时会提示要输入验证码,那么第一步就是要看看什么样的QQ号需要输入验证码。 地址(GET):********(QQ号码)&appid=1003903(固定)&r=0.9(随机18位) “*********”是我测试用的QQ号,r的值是个随机数,写成固定的也行。 请求头: Accept: */* Referer: Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Tencen tTraveler 4.0; EmbeddedWB 14.52 from: ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; . NET4.0E; InfoPath.3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate Host: ptlogin2.qq.com Connection: Keep-Alive Cookie: uikey=19ea2072338f7eb80f2573896d71465aeacae8d6122638c50ba8fcbb53eb b904; ptvfsession=eb95548fa394315edcf67e9cecd6e1ac09918361e8c08c3ab993faeaa 0aa6ff333f89dfc4bb277c6a59ddebcdcbbd29d; ptuserinfo=e6b885; pgv_info=pgvReferre r=&ssid=s5705120712; ptui_width=370; ptui_height=198; ptisp=ctc; pgv_pvid=1361064 104; pgv_flv=10.0 请求数据: UIN=***********(QQ号码) APPID=1003903(应用程序ID也就是WebQQ的版本,固定的) R=0.9(随机数18位) 返回数据: 返回数据(需要验证码): ptui_checkVC('1'(1=需要验证码,0=不需要),'8a6143167c8ca486696cf01c3ea088d658 b913d64b11289b'(验证码数据,这个数据在第一次获取验证码时作为参数来获取。)); 返回数据(不需要验证码): “ptui_checkVC('0','!OMD');” 括号里有两个被逗号隔开的单引号引着的数据,第一个值如果为0,则第二值为验证码,即不需要再从服务器获取验证码图片了,这个就是验证码了;第一个值如果不是1,则需要从服务器获取验证码图片,验证码需要根据图片人工输入。 2.获取验证码; 如果第一步中返回的数据中,括号里第一个单引号引起来的数据为0,则不需要这步。 第一次获取验证码地址:********&vc_type=8A6143167C8CA486696CF01C3EA088D658B 913D64B11289B “*********”是我测试用的QQ号。“”固定是不用怀疑的,aid=1003903是固定的(看web2.qq.com的页面数据就能找到了),r=0.2是个随机数也毫无疑问,uin=********是QQ号,vc_type=...是js 文件生成的,具体怎么回事就不知道了。 研究表明,“GET ********&aid=1002101&0.75811866 22105849”这样就可以,后面那个随机数写成固定的就行了,服务器肯定不会每次都给你一样的验证码。 获取验证码图片的同时,还需要获取Cookie,verifysession的值,登录时要用 请求头: Accept: */* Referer: Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; TencentT raveler 4.0; EmbeddedWB 14.52 from: ; . NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; .NET4.0E; InfoPath.3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate Host: captcha.qq.com Connection: Keep-Alive Cookie: pgv_info=pgvReferrer=&ssid=s5705120712; ptui_width=370; ptui_height=314; pti sp=ctc; pgv_pvid=1361064104; pgv_flv=10.0 查询数据: aid=1003903(版本号) r=0.2(随机18位) uin=********(QQ号码) vc_type=8a6143167c8ca486696cf01c3ea088d658b913d64b11289b(在检查是否需要验证码时返回的数据) 登录验证码错误后再获取验证码的地址: ********(QQ号码)&aid=null&0.271015592937 1449(随机18位) 请求头: Accept: */* Referer: Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; TencentT raveler 4.0; EmbeddedWB 14.52 from: ; . NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; .NET4.0E; InfoPath.3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate Host: captcha.qq.com Connection: Keep-Alive Cookie: pgv_info=pgvReferrer=&ssid=s5705120712; ptui_width=370; ptui_height=336; pti sp=ctc; pgv_pvid=1361064104; pgv_flv=10.0; verifysession=h0085e1faa63ddb7b0a43e4b0 4a215c06b44c70e8f5a74446cf760bc553121135e8c7807bc56dac6e614c096f1ef92c9ff2 请求数据: uin=********(QQ号吗) aid=null(为空) 0.9=(随机18位) 3.登录; 登录地址: (QQ号)&p=793E7DF74F8D87021F79A69F0DBF8287(md5(md5(密码)+验证码))&verifycode=hgjj(验证码)&remember_uin=1&aid=100390 3&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Flogin_level%3D3&h=1&ptredirect=0 &ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert&mibao_css= “”不必讨论,u=********是QQ号,p=...是密码,这密码并不是原始密码很正常,不然盗个QQ号也太容易了(插一句,其实服务器也不知道你密码是什么,但它知道你密码经过处理以后长什么样,所以你密码丢了,它只会给你新密码,而不会告诉你旧密码,因为它也不知道啊,^_^),这个密码好像是用MD5对原始密码加密,用输入的验证码处理一下再用MD5加密得到的,具体可以到js文件里研究一下。verifycode=afbc 就是你输入的验证码,remember_uin=1是记住帐号,aid=1002101同上,u1=http%3A%2F%2Fweb.qq.com%2Fmain.shtml%3Fdirect__2固定,本来%3A%2F%2F表示“:\\”,%3F表示“?”,但这里不能代替,是个转义字符。webqq_type是隐身标志,后面其他都固定。 注意要设置Cookie,verifysession的值 请求头: Accept: */* Referer: login=0&no_verifyimg=1&s_url=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Flogin_leve l%3D3&f_url=loginerroralert Accept-Language: zh-cn User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; TencentTravel er 4.0; EmbeddedWB 14.52 from: ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET4.0C; .NET4.0E; InfoPath.3; .N ET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate Host: ptlogin2.qq.com Connection: Keep-Alive Cookie: uikey=19ea2072338f7eb80f2573896d71465aeacae8d6122638c50ba8fcbb53ebb904; pt vfsession=eb95548fa394315edcf67e9cecd6e1ac09918361e8c08c3ab993faeaa0aa6ff333f89dfc4b b277c6a59ddebcdcbbd29d; ptuserinfo=e6b885; pgv_info=pgvReferrer=&ssid=s5705120712; pt ui_width=370; ptui_height=314; ptisp=ctc; pgv_pvid=1361064104; pgv_flv=10.0; verifysession =h0085e1faa63ddb7b0a43e4b04a215c06b44c70e8f5a74446cf760bc553121135e8c7807bc56dac 6e614c096f1ef92c9ff2 登录前需设置Cookie-:verifysession (这个值在获取验证码时得到) 登录结果; ptuiCB('0','0','','0','登录成功!');是登录成功的结果 括号中的第一个值是登录结果参数, 0:登录成功! 1:系统繁忙,请稍后重试。 2:已经过期的QQ号码。 3:您输入的密码有误,请重试。 4:您输入的验证码有误,请重试。 5:校验失败。 6:密码错误。如果您刚修改过密码, 请稍后再登录. 7:您的输入有误, 请重试。 8:您的IP输入错误的次数过多,请稍后再试。 是登录成功后浏览器用的地址,应用程序用不着,固定这个地址就可以。 注意,登录成功的话要获取Cookie值,后面要用,尤其是skey,ptcz,ptwebqq。 另外还有一个参数verifysession,就是验证码的那个Cookie,也要用。 4.获取登录后参数; 地址: 返回数据: {"retcode":0,"result":{"uin":********,"cip":3071582136,"index":1078,"port":53985," status":"hidden","vfwebqq":"5ab2ce0743496ffa257aa4119f35e44324171aa08d3e14 a4c506b7e392ca80b73e34551cef71a248","psessionid":"8368046764001e636f6e6e7 365727665725f2e32372e3138312e9e03 620524ef666d0000000a406e4e53734a517a33556d000000285ab2ce0743496ffa257a a4119f35e44324171aa08d3e14a4c506b7e392ca80b73e34551cef71a248"}} 第一个是QQ号;第三个是索引、第二个和第四个是服务器的端口号;第五个是登录状态,在线还是隐身;第六个未知,第7个就是所谓的登录令牌了,叫web_session; 再说一下最前面的数,正常情况是“0”;“2”表示连接错误;“4”表示授权错误;“5”表示密码错误;“6”表示登录状态解码错误;剩下的其他值表示未知错误。 从返回的数据里获取index、port、vfwebqq和psessionid四个参数。前面的四个参数,即index、port、vfwebqq和psessionid 都要放到Cookie里。 把数据r={"status":"","ptwebqq":"6614fcd374795a30247ee39ee5db415b0a1e55f06d 7a9e13a958b06b2e181b83","passwd_sig":"","clientid":"61222593","psessionid":null} clientid=61222593 psessionid=null 转换成utf-8 “r=%7B%22status%22%3A%22% 22%2C%22ptwebqq%22%3A%226614fcd374795a30247ee39ee5db415b0a1e55f06d7 a9e13a958b06b2e181b83%22%2C%22passwd_sig%22%3A%22%22%2C%22clientid% 22%3A%2261222593%22%2C%22psessionid%22%3Anull%7D&clientid=61222593&p sessionid=null”后POST 到来获取数据。 5、登录流程图: 温馨推荐 您可前往百度文库小程序 享受更优阅读体验 不去了 立即体验 Accept-Language: zh-cn Referer: Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; TencentTraveler 4.0; EmbeddedWB 14.52 from: ; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET 4.0C; .NET4.0E; InfoPath.3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Host: s.web2.qq.com Content-Length: 134 Connection: Keep-Alive Cache-Control: no-cache 将数据:r={"h":"hello","vfwebqq":"5ab2ce0743496ffa257aa4119f35e44324171aa08d3e14a4c50 6b7e392ca80b73e34551cef71a248"} 转换为utf 8 r=%7B%22h%22%3A%22hello%22%2C%22 vfwebqq%22%3A%225ab2ce0743496ffa257aa4119f35e44324171aa08d3e14a4c506b7e392ca80 b73e34551cef71a248%22%7D 后POST 到 返回数据: 返回的是JSON格式的数据包,{"retcode":0,"result":{"gnamelist":[{"gid":******,"code":*****, "flag":1041,"name":"\**\u**\u**\u**\u**"},{"gid":*******,"code":*******, 第一位是返回错误代码;第二位是集合,gid 是好友的代号;code 好友代码;flag 好友标记;name 好友名称(宽文本)
/
本文档为【WebQQ协议2.0】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索