QQ登录底层原理分析(转)
2012-07-16 09:27
375 查看
***************
下面正式开始。
其实简单说,QQ登录分为四步:
一,客户端向服务器发送请求登录令牌;二,服务器返回登录令牌;三,客户端登录;四,服务器返回结果。
下面一一分析。
******************
一,客户端请求登录。此步骤是最简单的一步。客户端向服务器发送一个登录请求包,内容如下:
*********
头部
0x00
尾部
*********
其中头部为固定格式,如下:
*********
0x02
客户端版本
命令
序列号
QQ号码
*********
命令为请求登录或登录等。序列号是一个随机数,客户端每次加一,用以确定回应包与请求包是否一一对应。
******************
二,如果服务器确认可以在此登录,则返回一个登录包,如下:
*********
头部
回复码
登录令牌长度
登录令牌
尾部
*********
其中回复码表示是否可以在该服务器登录,登录令牌长度为一固定值。登录令牌由服务器生成,未知含意。
******************
三,客户端登录。最重要的一步,登录包如下:
*********
头部
初始密钥
用户密码加密一个空串得到的16字节
固定内容,未知
登录状态(在线、隐身)
固定内容,未知
登录令牌长度
登录令牌
登录模式
未知
未知
固定内容,未知
补足0到规定长度
尾部
*********
其中初始密钥是一个16字节的随机数,用于本身加密。下文详解。
******************
四,服务器返回包。如果一切正确,服务器将返回一个登录包。
*********
头部
回复码
会话密钥
QQ号
用户IP
用户端口
服务器IP
服务器端口
登录时间
未知一堆
CLINET KEY
上次登录IP
上次登录时间
未知
尾部
*********
同样,这个返回包也是用密码密钥加密的。
在第三步中,用户密码将被两次MD5加密,然后作为密钥。再用它来加密一个空字符串,使用的是TEA算法。加密结果放在包里。而整个包除初始密钥外均是用初始密钥加密的。
服务器收到登录包后,用初始密码解开登录包。然后用服务器上的密码来解开密码密钥加密的空字符串。如果成功,则说明密码正确。登录成功。
下面正式开始。
其实简单说,QQ登录分为四步:
一,客户端向服务器发送请求登录令牌;二,服务器返回登录令牌;三,客户端登录;四,服务器返回结果。
下面一一分析。
******************
一,客户端请求登录。此步骤是最简单的一步。客户端向服务器发送一个登录请求包,内容如下:
*********
头部
0x00
尾部
*********
其中头部为固定格式,如下:
*********
0x02
客户端版本
命令
序列号
QQ号码
*********
命令为请求登录或登录等。序列号是一个随机数,客户端每次加一,用以确定回应包与请求包是否一一对应。
******************
二,如果服务器确认可以在此登录,则返回一个登录包,如下:
*********
头部
回复码
登录令牌长度
登录令牌
尾部
*********
其中回复码表示是否可以在该服务器登录,登录令牌长度为一固定值。登录令牌由服务器生成,未知含意。
******************
三,客户端登录。最重要的一步,登录包如下:
*********
头部
初始密钥
用户密码加密一个空串得到的16字节
固定内容,未知
登录状态(在线、隐身)
固定内容,未知
登录令牌长度
登录令牌
登录模式
未知
未知
固定内容,未知
补足0到规定长度
尾部
*********
其中初始密钥是一个16字节的随机数,用于本身加密。下文详解。
******************
四,服务器返回包。如果一切正确,服务器将返回一个登录包。
*********
头部
回复码
会话密钥
QQ号
用户IP
用户端口
服务器IP
服务器端口
登录时间
未知一堆
CLINET KEY
上次登录IP
上次登录时间
未知
尾部
*********
同样,这个返回包也是用密码密钥加密的。
在第三步中,用户密码将被两次MD5加密,然后作为密钥。再用它来加密一个空字符串,使用的是TEA算法。加密结果放在包里。而整个包除初始密钥外均是用初始密钥加密的。
服务器收到登录包后,用初始密码解开登录包。然后用服务器上的密码来解开密码密钥加密的空字符串。如果成功,则说明密码正确。登录成功。
相关文章推荐
- QQ登录底层原理分析(转)
- QQ网页微信、QQ二维码登录原理分析(整理)
- 逆向小试 ―― QQ 自动登录器原理分析
- 【转】逆向小试 ―― QQ 自动登录器原理分析
- 基于MTD的NANDFLASH设备驱动底层实现原理分析 .
- 基于OAuth2.0协议的QQ第三方授权登录iOS代码分析
- 高级语言案例分析_QQ_登录
- 基于MTD的NANDFLASH设备驱动底层实现原理分析(一) .
- 基于MTD的NANDFLASH设备驱动底层实现原理分析(五)
- 基于MTD的NANDFLASH设备驱动底层实现原理分析(三)
- OpenLayers 3实践与原理探究4.1-ol3源码分析-底层基础
- MyBatis动态SQL底层原理分析
- QQ 通信原理分析
- 基于MTD的NANDFLASH设备驱动底层实现原理分析(六)
- Spring Security源码分析三:Spring Social实现QQ社交登录
- bmp/gif/jpg图象最底层原理分析
- 基于MTD的NANDFLASH设备驱动底层实现原理分析 二
- 单点登录的底层原理(SSO)---图形解释更容易
- QQ登录协议分析图
- C#实现smartQQ 扫码登录分析自动收发消息