魔兽局域网协议之TCP部份分析-原创 一 待续

魔兽局域网协议之TCP部份分析-原创

前面先费话一点.在网上看到了一篇关于魔兽争霸war3的数据包分析,但可惜只有UDP部份的部份数据包.
而魔兽的主要数据通讯是采用TCP的,UDP主要就在于做局域网广播.之后连接.地图下载都使用TCP,找不到资料,
就分析了一下,希望能起来抛砖引玉作用.一点点分析,一点点写
2008-1-31 05:28下午
先简单介绍一下war3的数据包头结构

0x0000   00 11 09 00 8D 68 00 0B-6A D6 EC A6 08 00 45 00   ....峢..j朱?.E.
0x0010   00 B3 7C AC 00 00 80 11-3B C8 C0 A8 00 3B C0 A8   .硘?.€.;壤?;括
0x0020   00 3A 17 E0 17 E0 00 9F-75 A3 !!F7 30 97 00 50 58   .:.??焨w0?PX
0x0030   33 57 14 00 00 00 03 00-00 00 F6 AA A0 05 E5 BD   3W........霆?褰
0x0040   93 E5 9C B0 E5 B1 80 E5-9F 9F E7 BD 91 E5 86 85   撳湴灞€鍩熺綉鍐?
0x0050   E7 9A 84 E6 B8 B8 E6 88-8F 20 28 6C 6C 00 00 01   鐨勬父鎴?(ll...
0x0060   03 49 07 01 01 61 01 A9-7B 01 11 EB DB 03 4D CB   .I...a.﹞..脎.M?
0x0070   61 71 73 5D 45 6F 77 19-6F 6D 6F 61 65 5D 43 A3   aqs]Eow.omoae]C?
0x0080   61 75 75 6D 65 21 53 25-69 69 71 21 45 59 21 47   auume!S%iiq!EY!G
0x0090   49 49 21 35 2F 39 39 01-CF C9 B7 A9 B1 E7 2F 07   II!5/99.仙珐辩/.
0x00A0   77 33 79 01 6D 6D 6D 01-01 01 00 0C 00 00 00 01   w3y.mmm.........
0x00B0   00 00 00 01 00 00 00 06-00 00 00 B0 00 00 00 E0   ...........?..?
0x00C0   17                                                .

这是一个服务器信息的UDP数据包,
总是以F7开始,30是,0xf730则是数据包功能号
后面跟的97 00 则是数据包大小, 0097

 当通过UDP得到服务器地址后,会先向服务器请求游戏信息

之后连接服务器后,发出如下包,加入服务器
0x0000   00 0B 6A D6 EC A6 00 11-09 00 8D 68 08 00 45 00   ..j朱?...峢..E.
0x0010   00 53 48 4A 40 00 80 06-30 95 C0 A8 00 3A C0 A8   .SHJ@.€.0暲?:括
0x0020   00 3B 0A C5 17 E0 C1 A8-2A AA FE A7 AF 6D 50 18   .;.?嗔?НmP.
0x0030   FF FF 09 39 00 00 !! F7 1E-2B 00 03 00 00 00 F6 AA   .9..?+.....霆
0x0040   A0 05 00 E0 17 01 00 00-00 42 6C 61 64 65 00 01   ?.?....Blade..
0x0050   00 02 00                                          ...

都以 !! 为数据包段的起始位置,这前是包头,可以忽略
参是加入用户名,版本..暂不具体分析, 至于一个05就该是名字长度.


服务器返回包
0x0000   00 11 09 00 8D 68 00 0B-6A D6 EC A6 08 00 45 00   ....峢..j朱?.E.
0x0010   00 B2 7C AE 40 00 80 06-FB D1 C0 A8 00 3B C0 A8   .瞸瓳.€.括.;括
0x0020   00 3A 17 E0 0A C5 FE A7-AF 6D C1 A8 2A D5 50 18   .:.?毗Нm哩*誔.
0x0030   FF D4 A2 79 00 00 !!F7 04-8A 00 73 00 0C 00 FF 02   寓y..??s....
0x0040   01 00 00 01 01 64 00 FF-02 01 01 01 01 01 64 01   .....d.......d.
0x0050   64 02 00 00 02 60 01 64-00 FF 01 00 00 03 60 00   d....`.d.....`.
0x0060   64 00 FF 01 00 00 04 60-00 64 00 FF 01 00 00 05   d.....`.d.....
0x0070   60 00 64 00 FF 01 00 00-06 60 00 64 00 FF 00 00   `.d.....`.d...
0x0080   01 07 60 01 64 00 FF 00-00 01 08 60 01 64 00 FF   ..`.d.....`.d.
0x0090   00 00 01 09 60 01 64 00-FF 00 00 01 0A 60 01 64   ....`.d.....`.d
0x00A0   00 FF 00 00 01 0B 60 01-64 E3 25 F1 00 03 0C 02   .....`.d??...
0x00B0   02 00 0A C5 C0 A8 00 3A-00 00 00 00 00 00 00 00   ...爬?:........

看到一堆d, 64的10进制代码是100应是房间各空位上的状态,下载地图的进度,共有12个位置

之后返回地图信息
0x0000   00 11 09 00 8D 68 00 0B-6A D6 EC A6 08 00 45 00   ....峢..j朱?.E.
0x0010   01 13 7C B0 40 00 80 06-FB 6E C0 A8 00 3B C0 A8   ..|癅.€.鹡括.;括
0x0020   00 3A 17 E0 0A C5 FE A7-AF F7 C1 A8 2A D5 50 18   .:.?毗Н髁?誔.
0x0030   FF D4 E0 1E 00 00 !!F7 06-2F 00 03 00 00 00 01 6C   脏...?/......l
0x0040   6C 6C 00 01 00 00 00 00-00 00 00 00 00 00 00 00   ll..............
0x0050   00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0x0060   00 00 00 00 00 F7 3D 43-00 01 00 00 00 4D 61 70   .....?C.....Map
0x0070   73 5C 44 6F 77 6E 6C 6F-61 64 5C 42 61 74 74 6C   s/Download/Battl
0x0080   65 20 53 68 69 70 20 45-58 20 49 49 20 34 2E 39   e Ship EX II 4.9
0x0090   38 CE C8 B6 A8 B0 E6 2E-77 33 78 00 B6 1D 03 00   8稳定版.w3x.?..
0x00A0   C3 ED 27 4D 11 EA DB 02-F7 09 79 00 73 00 0C 00   庙'M.贳.?y.s...
0x00B0   FF 02 01 00 00 01 01 64-00 FF 02 01 01 01 01 01   ......d.......
0x00C0   64 01 64 02 00 00 02 60-01 64 00 FF 01 00 00 03   d.d....`.d.....
0x00D0   60 00 64 00 FF 01 00 00-04 60 00 64 00 FF 01 00   `.d.....`.d...
0x00E0   00 05 60 00 64 00 FF 01-00 00 06 60 00 64 02 FF   ..`.d.....`.d.
0x00F0   02 00 01 07 60 01 64 00-FF 00 00 01 08 60 01 64   ....`.d.....`.d
0x0100   00 FF 00 00 01 09 60 01-64 00 FF 00 00 01 0A 60   .....`.d.....`
0x0110   01 64 00 FF 00 00 01 0B-60 01 64 F8 18 F3 00 03   .d.....`.d??.
0x0120   0C                                                .

加入的玩家查找本地没有此地图时,则开始下载地图
下载地图包以 F7 43 开头。太多就不打出来了

之后再慢慢分析

 

你可能感兴趣的:(魔兽局域网协议之TCP部份分析-原创 一 待续)