本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

我是沙漠中细沙一砾,
你们是我身旁盛开的灿烂的仙人掌花,
点缀着我孤寂的生活!


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:30
评论数量:76
留言数量:-2
访问次数:164209
建立时间:2004年12月30日




LumaQQ 跬步文档
其他

godknows 发表于 2005/6/4 0:07:14

LumaQQ 跬步文档 登录 Luma, 清华大学更新时间: 2005-04-04 QQ登录目前有多种模式,比如普通QQ号,电子邮件登录,绑定手机号登录,还有什么普通模式,TM模式。目前我们只支持普通模式和QQ号登录。 请求包格式 头部 初始密钥,16字节 用户的密码密钥加密一个空串得到的16字节 36字节的固定内容,未知含义 登录状态,隐身登录还是什么,1字节 16字节固定内容,未知含义 登录令牌长度,1字节 登录令牌 登录模式,1字节,目前只支持普通模式 未知1字节,0x40 后面段的个数,1字节,1个段9字节(猜测) 段,每次基本都是固定内容,未知含义 长度不足则全部填0直到符合登录包长度,UDP模式登录请求包长度为416字节 尾部 Note: 此包使用初始密钥加密,注意头部之后就是初始密钥,初始密钥是不加密的。 说明 初始密钥在2004以前用的是一个固定值: 16个0x01字节。2004之后,采用随机密钥 密码密钥是通过对用户的密码进行2次MD5生成的 密码密钥加密一个空串是干什么呢?主要是服务器用来验证密码的,如果服务器能用密码密钥解开这16个字节,那么它就认为密码是正确的。在这里,我们不一定非要加密一个空串,其实任意字符串都可以,但是你要保证密文只有16个字节。 登录请求包的固定内容,含义是未知的,而且,也不能说内容是固定的,即使我们把这些字段全部替换成0,依然能够登录 回复包格式 回复包可能有多种情况,包体的第一个字节是回复码,可能的取值如下: QQ_LOGIN_REPLY_OK: 登录成功 QQ_LOGIN_REPLY_REDIRECT: 重定向 QQ_LOGIN_REPLY_PASSWORD_ERROR: 密码错误 QQ_LOGIN_REPLY_OK: 头部 回复码,1字节 会话密钥,16字节 用户的QQ号,4字节 用户的IP,4字节 用户的端口,2字节 服务器的IP,4字节 服务器的端口,2字节 本次登录时间,4字节 未知的26字节 未知服务器1的IP,服务器的作用未知,4字节 未知服务器1的端口,2字节 未知服务器2的IP,4字节 未知服务器2的端口,2字节 2个未知字节 2个未知字节 Client Key, 32字节 12个未知字节 上次登录时的IP,4字节 上次登录时的时间,4字节 8个未知字节 尾部 QQ_LOGIN_REPLY_REDIRECT: 头部 回复码,1字节 用户QQ号,4字节 重定向的服务器IP,4字节 重定向的服务器端口,2字节 尾部 QQ_LOGIN_REPLY_PASSWORD_ERROR: 头部 回复码,1字节 错误消息字符串 尾部 Note: 登录回复包使用密码密钥加密,或者使用初始密钥加密,在处理时,应该先尝试使用密码密钥解密,如果失败,则再用初始密钥解密。为什么要这样呢,因为你可能密码输入错误,这样的话服务器用密码密钥加密的包你就解密不了了,所以会用初始密钥加密。 说明 时间都是4个字节,其表示从1970-1-1开始的毫秒数再除以1000 Client Key是用在访问一些网络服务时,比如QQ秀,通过Client Key,TX可以直接定位到你的QQ秀页面,还有什么QQ家园啦,有可能聊天室也要用到这个。 那些未知的服务器,可能是用来发广告用的,猜想~ 成功时 登录成功或者重定向时,核心层会触发QQ_LOGIN_SUCCESS事件,这个事件携带的包是LoginReplyPacket,用户应该检查replyCode的值,然后进行相应的操作:当replyCode为QQ_LOGIN_REPLY_OK时,有以下字段可用: sessionKey: byte[],会话密钥 ip: byte[],用户IP port: int, 用户端口 serverIp: byte[], 服务器IP serverPort: int, 服务器端口 loginTime: int, 本次登录时间 lastLoginTime: int, 上次登录时间 clientKey: byte[], Client Key 当replyCode为QQ_LOGIN_REPLY_REDIRECT时,有以下字段可用: redirectIp: byte[], 重定向到的服务器IP redirectPort: int, 重定向到的服务器端口 重定向到零地址时 在登录高峰期,登录重定向时有可能得到一个0地址,这时核心层会触发QQ_LOGIN_REDIRECT_NULL事件,这个事件携带的包是LoginReplyPacket,不过这个包没有什么可用信息。 密码错误时 如果密码错误,核心层会触发QQ_LOGIN_PASSWORD_ERROR事件,这个事件携带的包是LoginReplyPacket,可用的字段如下: replyMessage: String, 错误信息字符串 未知错误时 如果回复码不是以上三种,则核心层会触发QQ_LOGIN_UNKNOWN_ERROR事件,这个事件携带的包是LoginReplyPacket,但是没有可用字段。 LumaQQ is a Java QQ client which has a reusable pure Java core and SWT-based GUI


阅读全文(1834) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144782888 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号