QQ2010协议分析系列(二) - 登录之第一篇(0x0091)

QQ2010协议分析第一篇

测试QQ:597789809

昵称:浪子无情

尝试QQ服务器IP:112.95.240.125

client IP:222.35.174.5(我的外网IP)

密码:这个算了吧

Send:

看到下面的数字很迷茫吧,不用着急,我慢慢解释

下面的文本是HEX字符串,是常用网络16进制文本方式。

QQ常用消息包结构:

 包头:02     //表示包的开头

    1F 57   //QQ版本代码,这里表示QQ2010sp3版本

    00 91   //包命令

58 16      //这个不是固定的,表示序列号

23 A1 8C 71  //QQ号码的16进制HEX表示,597789809

    02 00 00 00 01 01 01 00 00 64 48    //未知,但是每个消息包都有,可能是这个版本的描述信息。

    

####################Touch (0x0091)####################

[2011-01-19 10:41:37 848 SEND]

02    //包的开始标记

1F 57 //QQ版本号

00 91 //命令号

58 16 //序列号

23 A1 8C 71 //QQ号码

02 00 00 00 01 01 01 00 00 64 48 //the same for QQ version

7F ED 93 BB 29 A2 9B 71 DE 40 CD F9 28 F7 28 AA -随机16位密钥

-密文省略-

解密:

random key - 7F ED 93 BB 29 A2 9B 71 DE 40 CD F9 28 F7 28 AA

-----------------------------------------------

-----------------------------------------------

00 01  -固定

00 00 08 04 01 E0 -QQ所在机器本地话信息,代表一些语言啊,国家代码等

00 00 03 30 00 00 00 01 00 00 0C 73 -QQ版本描述信息

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -固定

-----------------------------------------------

-----------------------------------------------

03 --包尾部

Receive:

##################Touch (0x0091) Reply################

[2011-01-19 10:41:38 324 RECEIVE]

02 1F 57 00 91 58 16 23 A1 8C 71  //同上

00 00 00 //QQ版本检验正确返回为0

-密文省略-

解密:

解密密钥 = 0x0091 随机密钥(就是由你随机生成的16位密钥)

7F ED 93 BB 29 A2 9B 71 DE 40 CD F9 28 F7 28 AA

-----------------------------------------------

-----------------------------------------------

00 -Touch成功

4D 36 4D FD -Touch server time

72 F9 DB 64 -client ip

00 00 00 00 00 00 00 00 -the same

00 38 -令牌长度(切忌长度是16进制表示的,16进制的 38代表十进制的56),下面是令牌数据

06 BC 29 BA AD 47 82 78 44 CC 02 A4 AC

F3 11 E1 9E 3B 78 A6 B3 E6 82 54 F5 9D 85 E2 C6

C2 8F 69 62 54 18 F8 B2 2B 8D 9E 8E 60 2C 86 19

D3 9A 6B 60 DF 70 A3 9F F9 99 F6

00 -Touch 完成,(01表示未成功,继续Touch)

(01 -当为01是,

01 00 00 00

09 00 00 00 00

70 5A 8A 8C -QQ服务器推荐的IP,下次Touch找它 )

-----------------------------------------------

-----------------------------------------------

03

时间: 2024-11-03 22:50:15

QQ2010协议分析系列(二) - 登录之第一篇(0x0091)的相关文章

QQ2010协议分析系列(四) - 登录第三篇之0x00DD

0x00DD - 密码验证 发送: ################Login Password Auth (0x00DD)########################### [2011-01-19 10:41:38 732 SEND] 02 1F 57 00 DD 25 7E 23 A1 8C 71 02 00 00 00 01 01 01 00 00 64 48 //和以前一样 D9 B6 D9 B1 12 20 98 B7 75 DE EA 60 E1 A0 CD 7B-0x00DD

QQ2010协议分析系列(一) - 登录之开篇

QQ 协议不再神秘,现在山寨 QQ 层出不穷,处于个人爱好,分析了 qq2010sp3 协议.现在提供了 Java 版本的 QQ2010 接口,正在完善之中,日后定提供源代码,共同学习. 效果图: 介绍一个 QQ 登录交互过程: QQ 服务器支持 UDP , TCP 以及 HTTP 等方式,当然还有手机网络协议.至于 UDP , TCP 和 HTTP 是什么东东, 你就去百度吧.在这里我介绍的是 UDP 方式. QQ 协议采用请求 — 响应的模式, 由客户端主动发起请求,经过服务器检测是否合法,

QQ2010协议分析系列(三) - 登录第二篇-0xBA

0xBa是检测是否输入验证码. 发送: ##################Login Get verify code (0x00BA)################ [2011-01-19 10:41:38 325 SEND] 02 1F 57 00 BA 4C 15 23 A1 8C 71 02 00 00 00 01 01 01 00 00 64 48  //同以前 6C 4F E6 8E B9 81 42 E5 B5 CA E7 AD 77 7B 39 CE -随机16位密钥 -密文省

QQ2010协议分析系列(五) - 山寨QQ手机版(Android)

QQ山寨比较多,前段时间密码被盗了,用了几年的QQ,密码被盗,非常生气,正好有时间,研究了QQ2010协议.现在有所小成,基本完成了QQ的协议分析和基本源码,登录和聊天没有问题.并且做成了android版本,其他部分有待于优化,关键没有时间,密码找回了,我就没怎么去研究了,等以后有时间再弄.另外本人swing不是很好,所以重点没有放在界面上,而是放在协议解析上.这里当然感谢lumaqq,它应该让我了解QQ协议框架.算是站在巨人肩膀上. 今天终于找到了官方QQ2010的图片资源文件,它存在qq的安

Cordova Android源码分析系列二(CordovaWebView相关类分析)

本篇文章是Cordova Android源码分析系列文章的第二篇,主要分析CordovaWebView和CordovaWebViewClient类,通过分析代码可以知道Web网页加载的过程,错误出来,多线程处理等. CordovaWebView类分析 CordovaWebView类继承了Android WebView类,这是一个很自然的实现,共1000多行代码.包含了PluginManager pluginManager,BroadcastReceiver receiver,CordovaInt

【HANA系列】SAP 【第一篇】EXCEL连接SAP HANA的方法(ODBC)

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP [第一篇]EXCEL连接SAP HANA的方法(ODBC) 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 事前工作准备如下[office2016]: 1.Power Query在Excel 2016中称为Get&Transform.此处提供的信息适用于两者. 要了解更多信息,请参阅Excel

【转】手摸手,带你用vue撸后台 系列二(登录权限篇)

前言 拖更有点严重,过了半个月才写了第二篇教程.无奈自己是一个业务猿,每天被我司的产品虐的死去活来,之前又病了一下休息了几天,大家见谅. 进入正题,做后台项目区别于做其它的项目,权限验证与安全性是非常重要的,可以说是一个后台项目一开始就必须考虑和搭建的基础核心功能.我们所要做到的是:不同的权限对应着不同的路由,同时侧边栏也需根据不同的权限,异步生成.这里先简单说一下,我实现登录和权限验证的思路. 登录:当用户填写完账号和密码后向服务端验证是否正确,验证通过之后,服务端会返回一个token,拿到t

Redis java客户端 jedis 源码分析系列二:单实例 jedis

在使用Jedis的过程中最简单的用法就是单实例单连接的jedis,如下代码所示: public void testJedis(){ Jedis jedis = new Jedis("127.0.0.1"); jedis.set("key", "value"); jedis.get("key"); jedis.close(); } 让我们深入到内部去看一看其结构,如下图所示: 此处请先忽略 JedisPool 类和 Pool&l

Ubuntu系列:Ubuntu学习——第一篇

一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的“ubuntu”一词,意思是“人性”.“我的存在是因为大家的存在”,是非洲传统的一种价值观. Ubuntu的目标在于为一般用户提供一个最新同时又相当稳定,主要以自由软件建构而成的操作系统.Ubuntu目前具有庞大的社区力量支持,用户可以方便地从社区获得帮助. 二. 安装 ubuntu官方网站: http://www.ubuntu.com/    对应 中