返回列表 发帖

[交流] 【转自看雪】迅雷协议分析 by theOcrat


有性趣的看看吧~


标 题: 【原创】迅雷协议分析
作 者: theOcrat
时 间: 2007-08-16,11:56
链 接: http://bbs.pediy.com/showthread.php?t=49767

【文章标题】: 迅雷协议分析
【文章作者】: the0crat
【邮件地址】: the0crat.cn_at_gmail.com
【作者主页】: http://the0crat.spaces.live.com
【生产日期】: 20070526
【软件名称】: Thunder 5.5.6.274
【使用工具】: OD+Ethereal
【作者声明】: 本文仅供研究学习,本人对因这篇文章而导致的一切后果,不承担任何法律责任。本文中的不足之处请各位多多指教
--------------------------------------------------------------------------------


代码太长 原帖看吧


======================================================================注销
<--TCP!来源验证.Data(53 Bytes)
                         00 00 00 35 00 00 00 2b 00 00  .........5...+..
0040   00 2b 00 00 00 24 31 32 63 39 32 61 34 62 2d 34  .+...$12c92a4b-4
0050   64 36 66 2d 34 61 62 64 2d 61 66 65 62 2d 37 31  d6f-4abd-afeb-71
0060   37 63 39 39 33 62 32 62 35 34 00                 7c993b2b54.

[结构]
00 00 00 35        此数据包长度
00 00 00 2b        将要发送的'下载加积分.Data'数据包的长度
00 00 00 2b        将要发送的'下载加积分.Data'数据包的长度
00 00 00 24        标识串长度
31 32 63 ... 35 34 00  标识串



<--TCP!发送注销信息.Data(43 Bytes)
                         00 00 00 0e 00 00 00 05 00 00  ................
0040   00 1f 00 00 00 0b 51 55 45 52 59 4c 4f 47 4f 55  ......QUERYLOGOU
0050   54 00 00 00 08 32 32 39 30 30 31 35 37 00 00 00  T....22900157...
0060   00                                               .

[结构]
00 00 00 0e              未知,固定不变(猜测与版本有关,未经验证)
00 00 00 05              程序启动时初始化为0,第一次用户注销后+5,其余每次有用户注销则+4
00 00 00 1f              以下数据的长度
00 00 00 0b              标识"QUERYLOGOUT"的长度
51 55 45 52 59 4c 4f 47 4f 55 54  标识"QUERYLOGOUT"
00 00 00 08              用户id的长度
32 32 39 30 30 31 35 37        用户id
00 00 00 00              空
======================================================================注销END


其中上面列出来的第一个包中密码hash看似是md5,直接把我的密码的md5算出来对比了一下,不一样,那就跟一下吧,打开od,立马定位到这里



返回到最早跟入的那里继续

215C4E17   .  8D8D 3CF7FFFF lea     ecx, dword ptr [ebp-8C4]
215C4E1D   .  E8 7EF40000   call    <sub_215D42A0>
215C4E22   .  6A 20         push    20                               ; /maxlen = 20 (32.)
215C4E24   .  8D8D 7CFFFFFF lea     ecx, dword ptr [ebp-84]          ; |
215C4E2A   .  50            push    eax                              ; |src     这里是刚才md5后的字符串
215C4E2B   .  51            push    ecx                              ; |dest
215C4E2C   .  FF15 D4015F21 call    dword ptr [<&MSVCRT.strncpy>]    ; \strncpy     保存一遍
215C4E32   .  83C4 0C       add     esp, 0C
215C4E35   .  8D8D F4F9FFFF lea     ecx, dword ptr [ebp-60C]
215C4E3B   .  E8 00E80000   call    <sub_215D3640>
215C4E40   .  8D95 7CFFFFFF lea     edx, dword ptr [ebp-84]
215C4E46   .  8D8D F4F9FFFF lea     ecx, dword ptr [ebp-60C]
215C4E4C   .  52            push    edx
215C4E4D   .  C645 FC 03    mov     byte ptr [ebp-4], 3
215C4E51   .  E8 9AE80000   call    <sub_215D36F0>                   ;  对第一次md5的结果再次md5
215C4E56   .  B9 08000000   mov     ecx, 8
215C4E5B   .  33C0          xor     eax, eax
215C4E5D   .  8DBD 7CFFFFFF lea     edi, dword ptr [ebp-84]
215C4E63   .  F3:AB         rep     stos dword ptr es:[edi]
215C4E65   .  66:AB         stos    word ptr es:[edi]
215C4E67   .  8D8D F4F9FFFF lea     ecx, dword ptr [ebp-60C]
215C4E6D   .  AA            stos    byte ptr es:[edi]
215C4E6E   .  E8 2DF40000   call    <sub_215D42A0>
215C4E73   .  6A 20         push    20                               ; /maxlen = 20 (32.)
215C4E75   .  50            push    eax                              ; |src
215C4E76   .  8D85 7CFFFFFF lea     eax, dword ptr [ebp-84]          ; |
215C4E7C   .  50            push    eax                              ; |dest
215C4E7D   .  FF15 D4015F21 call    dword ptr [<&MSVCRT.strncpy>]    ; \strncpy     到这里为止密码的hash就出来了



此帖于 2007-08-21 19:15 被 theOcrat 编辑. 原因: 详细环境

[ 本帖最后由 needed 于 2008-7-20 15:40 编辑 ]
时间是用来流浪的,身躯是用来相爱的,生命是用来遗忘的,而灵魂,是用来歌唱的……

通过hash比对,难道这就是‘一个文件不存在了,用迅雷还是可以下载到的’原理
December 21 2012

TOP

.....................楼主看得懂?
虽讲上善若水,但是偶尔还是来句-去他妈的一切随缘吧

TOP

返回列表