没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、 QQ登陆的过程,大概可以分为如下的几步,
1. Touch、测试服务器是否正常相应 0091
2. 验证码检测 00ba
3. 密码验证(重要)
向服务器发送登陆请求,需要使用密码进行运算作为密钥才能机密该报文,解密的报文中包
含对第4步的解密密钥。
login Verify(0x00dd)
非常重要!!获取会话密钥首先得解密该报文。但是要解密该报文,必须得知道该登陆QQ用
户的密码,而用户密码只有用户和TX知道,第三方是不知道的(也有可能存在“不可思议”的
第三方…)。数据传输过程中使用的加密算法是blowfish,这个算法目前从公开的资料上来说,
还没有发现漏洞。因此,要实时获取用户的聊天信息,除非已经知道密码了,或者已经暴力
破解了密码(这里简单介绍一下怎么进行暴力破解,这里的暴力破解,当然不是模拟一个QQ
客户端不停的向TX服务器发送登陆请求,这样太慢了,而且TX那边也会有记录。首先,得分
析出这个报文的密钥生成算法[不是简单的直接使用密码作为密钥],加密算法(这个已知,是
blowfish),第二,需要将对方的登陆报文截取保存到文件,然后写一个程序,不停拼接字符
串、数字、标点符号进行组合,根据第一步分析它密钥的生成方法生成出密钥,然后作为blo
wfish算法的密钥,去解密报文,如果解密成功,恭喜你,你暴力破解到了一个QQ密码。但是
这种概率比较小,即使有一些,这些号码的价值不大,扯远了…)。
LoginVerify报文的解密密钥生成方法,在QQ2011版本之前,是MD5(MD5(PWD)),对QQ的密
码做了两次MD5运算。但是QQ2011版本(包括2011版本)之后,这个算法做了一点修改,
就是:MD5(MD5(PWD+QQ_NUM)),这个修改其实是非常有必要的,为什么呢?因为随着硬
件技术的发展,以及前些年MD5彩虹表的推出,简单密码的MD5值非常容易就能从彩虹表中
找出对应MD5值,从而得到原始字符串密码,即使TX做了两次的MD5运算。在彩虹表的推出
或以前(因为我也不知道是在这以前还是以后,呵呵),在执行MD5运算时,就有了加SALT
的说法,很形象!加盐,在这里,QQ_NUM就是盐,这样就加大了使用彩虹表破解的难度。
使用密码根据以上的算法得出解密密钥,解密Login Verify报文后,会得到一个新的密钥,这
个密钥暂且就叫做verify_key。
4. 校验第二步和第三步的数据 00e5
该数据包主要用于校验前几个数据包的 Token 数据,如果通过验证,服务器端会返回本
次登录的时间和 IP 地址等信息。
Login get information(0x00e5)
客户端接收到服务器的 Login Verify Reply 报文后,会使用 verify_reply_key 加密数
据发送到服务器,而这里面又包含了一个 key – get_info_key。
5. 校验第四步数据 00e3
6. 请求回话密钥及获得(关键)。0030
该数据包是QQ登录流程的最后一个数据包,主要用于向QQ客户端返回会话密钥
(SessionKey),该会话密钥由服务器端生成
使用get_info_key解密该报文,得到会话KEY – session key。
回想一下:密码是关键,有了密码才能解密Login Verify(0x00dd)报文,解密了Login Verify(0x
00dd),才能解密后续的的报文。其步骤是:passwd -> verify_key -> verify_reply_key -> get_i
nfo_key -> session_key
[NO.1 2012-11-29 11:01:50 492 SEND 87字节]
02 26 48 00 91 41 88 00 10 D2 71 02 00 00 01 05
01 00 00 00 65 AE 41 D3 FD 4C AE 8B 16 7E DD EF
58 B1 9C E4 24 8D 03 20 BF EE 50 EB 5A 02 B5 06
B7 EE 64 B7 87 8C D8 CD 9F CD AC A1 EA F1 41 E4
16 29 04 9E 22 5A DC EB 54 50 6F 50 53 8E F7 DC
3D 5E 36 04 6F 47 03
[
02 //包头
26 48 //版本号
00 91 //命令
41 88 //包序号
00 10 D2 71 //QQ号码:1102449
02 00 00 01 05 01 00 00 00 65 AE //固定,QQ版本号不同则不同
41 D3 FD 4C AE 8B 16 7E DD EF 58 B1 9C E4 24 8D //0x91密钥
00 01 //固定两字节
00 00 08 04 01 E0 //0091Data01(在后面的命令里面要用到的)
00 00 03 51 00 00 00 01 00 00 0F 20 //0091Data02(在后面的命令里面要用到的)
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //首次发送为15字节0
03 //包尾
]
[NO.2 2012-11-29 11:01:50 534 RECEIVE 103字节]
02 26 48 00 91 41 88 00 10 D2 71 00 00 00 54 73
BA DA 15 B9 E0 50 5D 76 D8 8B EE D8 CC CD 96 8D
B8 04 41 1A DA 64 73 7A 17 10 74 90 22 62 D4 3F
34 0A 6E 50 A9 6C 1E 41 E1 8A 14 A5 92 D3 91 61
A0 23 70 3C 48 33 68 CB AE 09 1F 8B B4 35 E4 92
63 82 25 26 45 AA 88 30 CA F3 20 16 94 2E 9B 19
6B E2 29 2C 23 97 03
[
02 //包头
26 48 //版本号
00 91 //命令
41 88 //包序号
00 10 D2 71 //QQ号码:1102449
00 00 00 //固定全为0
00 //接触成功
50 B6 D0 1E //登录时间:2012/11/29 11:01:50
DA 18 C6 0C //登录IP地址:218.24.198.12
00 00 00 00 00 00 00 00 //固定8字节0
00 38 //0091_Token长度:56字节
A4 C5 22 87 11 11 2A 10 41 1A 2A C5 84 28 92 48
CF 71 47 C0 0D 3D 0E B9 F1 F4 3C 91 AC 0E 8B 05
63 F7 ED 0C AB 7B 41 38 91 D2 D8 C2 E8 63 EE C2
C8 36 32 A6 03 79 BD 75
00 //接触成功
03 //包尾
]
[NO.3 2012-11-29 11:01:50 535 SEND 143字节]
02 26 48 00 BA 7B 6F 00 10 D2 71 02 00 00 01 05
01 00 00 00 65 AE 9F 7B 21 71 EC A6 A4 13 BC 54
86 EE F0 AD DB 0E 23 0B A3 0F A4 28 37 48 BB BA
B3 01 5D 67 48 01 46 1E DF 6E A2 6C AB 93 EF 2E
0E 52 EE 20 3E EE 87 D8 65 5A F8 80 8B AD FF 2B
E0 DF F4 00 5A 53 78 2C A7 86 D1 9E DC 35 1C 64
60 8D 49 44 90 AF 8A 3E EF 49 29 0E 18 30 32 99
95 40 A7 CE 2D 3B D9 39 2C 0B F6 1F 0A 09 94 73
10 6F 78 42 A7 7A 42 0D 6E 6B 6B 34 BB 91 03
[
02 //包头
26 48 //版本号
00 BA //命令
7B 6F //包序号
00 10 D2 71 //QQ号码:1102449
02 00 00 01 05 01 00 00 00 65 AE //固定,QQ版本号不同则不同
9F 7B 21 71 EC A6 A4 13 BC 54 86 EE F0 AD DB 0E //0xBA密钥
00 01 //固定两字节
00 00 08 04 01 E0 //0091Data01
00 00 03 51 00 00 00 01 00 00 0F 20 //0091Data02
00 38 //0091_Token长度:56字节
A4 C5 22 87 11 11 2A 10 41 1A 2A C5 84 28 92 48
剩余11页未读,继续阅读
资源评论
onionion254
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功