WebQQ协议分析(1)——登录
申明:本文章只做研究之用,不得用于商业目的,不得大规模推出自己的QQ代替腾讯的产品,后果自负。
绪:
一直想弄个程序与QQ直接通信,再弄个聊天机器人什么的,困于无从下手:QQ太麻烦了,抓包来看看吧,全是乱码,没个能读通的,明显加过密,解密的难度也太大了。
好在出了个WebQQ,一切问题都解决了,因为浏览器要运行程序,得从服务器下载数据啊,也就是源代码了。源代码都有了,还有什么不能解决的?
在此,推荐一款抓包工具,Fiddler,英文版的,但太好用了,不得不推荐一下。
本系列文章针对的是WebQQ的version:1.1版本,网址:http://web.qq.com
1、获取验证码
用Web登录QQ时需要先打开web.qq.com,但我们用的是应用程序模拟浏览器登录,所以这一步是没有必要的,所以我们主要看看点击“登录”按钮时浏览器向服务器发送什么数据了。Web登录QQ输入帐号输入焦点离开时,有时会提示要输入验证码,那么第一步就是要看看什么样的QQ号需要输入验证码。
GET http://ptlogin2.qq.com/check?uin=1030196367&appid=1002101&r=0.8849248
“1030196367”是我测试用的QQ号,r的值是个随机数,写成固定的也行。
服务器返回“ptui_checkVC('0','!OMD');”
括号里有两个被逗号隔开的单引号引着的数据,第一个值如果为0,则第二值为验证码,即不需要再从服务器获取验证码图片了,这个就是验证码了;第一个值如果不是1,则需要从服务器获取验证码图片,验证码需要根据图片人工输入。
2、获取验证码图片
如果第一步中返回的数据中,括号里第一个单引号引起来的数据为0,则不需要这步。
GET http://captcha.qq.com/getimage?aid=1002101&r=0.7712672651606319&uin=1030196367&vc_type=……
“http://captcha.qq.com/getimage ”固定是不用怀疑的,aid=100210是固定的(看web.qq.com的页面数据就能找到了),r=0.7712672651606319是个随机数也毫无疑问,uin=1030196367是QQ号,vc_type=...是js文件生成的,具体怎么回事就不知道了。
研究表明,“GET http://captcha.qq.com/getimage?0.7712672651606319 ”这样就可以,后面那个随机数写成固定的就行了,服务器肯定不会每次都给你一样的验证码。
获取验证码图片的同时,还需要获取Cookie,verifysession的值,登录时要用
3、输入帐号、密码及验证码登录
GET http://ptlogin2.qq.com/login?u=1030196367&p=……&verifycode=afbc&remember_uin=1&aid=1002101&u1=http%3A%2F%2Fweb.qq.com%2Fmain.shtml%3Fdirect__2&h=1&ptredirect=1&ptlang=2052&from_ui=1&pttype=1&dumy=&fp=loginerroralert
“http://ptlogin2.qq.com/login ”不必讨论,u=1030196367是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的值
4、登录结果
ptuiCB('0','0','http://web.qq.com/main.shtml?direct__2','1');是登录成功的结果
括号中的第一个值是登录结果参数,
0:登录成功!
1:系统繁忙,请稍后重试。
2:已经过期的QQ号码。
3:您输入的密码有误,请重试。
4:您输入的验证码有误,请重试。
5:校验失败。
6:密码错误。如果您刚修改过密码, 请稍后再登录.
7:您的输入有误, 请重试。
8:您的IP输入错误的次数过多,请稍后再试。
......
http://web.qq.com/main.shtml?direct__2 是登录成功后浏览器用的地址,应用程序用不着,固定这个地址就可以。
注意,登录成功的话要获取Cookie值,后面要用,尤其是skey,ptcz,ptwebqq。
另外还有一个参数verifysession,就是验证码的那个Cookie,也要用。
作者:yjh4866
源地址:http://blog.csdn.net/yjh4866
WebQQ协议分析(1)——登录相关推荐
- 网页微信协议分析(一)——登录
参考:https://www.52pojie.cn/thread-836149-1-1.html 1,先分析二维码,多次刷新页面对比,红色部分属于变动的参数 二维码请求地址:https://login ...
- webqq登录协议分析
webqq登录协议分析 通过webqq接口,可以实现发送.接收qq消息. 1.首先调用:http://ptlogin2.qq.com/check?appid=1002101&uin=qq号码& ...
- FTP协议中的登录 上传 下载 新建目录 删除目录 的wireshark包分析(一文看完TCP包分析,附源文件,ppt,操作视频)
目录 一原理 二.FTP登录 三.FTP下载 四.FTP上传 五.FTP新建目录 六.FTP删除目录 一原理 前言:TCP/IP四层模型和OSI模型对照,以及FTP在模型中的位置. • ...
- QQ2007Bate3协议分析——登录认证篇
作者:charytang 联系方式:Email: runtang@vip.sina.com QQ:3398171 创建时间:2007年7月31日星期二 1. 说明: 本文以QQ2007 ...
- 某游戏盒登录协议分析
前言 距离上次写博客已经过去了一个月,博主本人在这期间也分析了不少案列,这次分享一个比较综合的案例,难易程度偏简单,适合协议分析练手,下面直接进入正题. 准备工作 首先我们得安装抓包软件,我这里是用F ...
- webqq2协议分析和qq聊天机器人简单实现(转)
webqq2协议分析和qq聊天机器人简单实现 转之http://hfutxf.javaeye.com/blog/800866 通过webqq接口,可以实现发送qq消息接收qq消息等,这样,想实现一个q ...
- VC++分析数据包实现Telnet协议分析
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户提供了在本地计算机上完成远程主机工作的能力.在终端使用者的电脑上使用telnet程序,用它连接 ...
- Java 实现 SSH 协议的客户端登录认证方式--转载
背景 在开篇之前,让我们先对 SSH 协议有个宏观的大致了解,这样更有利于我们对本文的加深了解.首先要提到的就是计算机网络协议,所谓计算机网络协议,简单的说就是定义了一套标准和规则,使得不同计算机之间 ...
- 钉钉小程序可以上传文件_怎样禁止钉钉外发文件?钉钉文件传输协议分析
钉钉(DingTalk)是中国领先的智能移动办公平台,用于商务沟通和工作协同.越来越多企业采用钉钉来进行办公自动化,但是由此带来的信息安全问题也不能忽视.钉钉软件可以很容易的上传附件.外发和接收文件, ...
最新文章
- Intellij IDEA中生成jar包
- Uva 1103 Ancient Messages
- HTML cellpadding与cellspacing属性
- Leetcode155最小栈
- 百度云虚拟机 隐藏index.php,wamp server虚拟主机设置index.php隐藏(入口文件隐藏)
- Dubbo为什么用Go重写?
- 大学生计算机基础清考试卷,天大《计算机网络基础》4月毕业清考作业考核试题模板.doc...
- 【转】两厢车与三厢车安全性哪个好?
- 基于PHP、Mysql的电影院售票系统
- noip2013 day2
- leafletjs 热力图_leaflet.js自定义热力图效果实例
- 浏览器插件镜像下载地址
- 小学校本课程计算机前言,《创意手工》三河小学校本课程——序言
- memcpy和memmove以及memcmp
- Fedora安装字体方法和Ubuntu非常不同!
- mysql命令行参数
- python爬取整个网站的广告敏感词_Python实现敏感词过滤的4种方法
- 关于华为的高薪和华为的加班
- 数字图像基本处理算法
- 五金手册_五金反引号