⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bnet_protocol.h

📁 打魔兽战网的都知道他是什么
💻 H
📖 第 1 页 / 共 5 页
字号:
#define SERVER_ICONREPLY 0x2dfftypedef struct{    t_bnet_header h;    bn_long       timestamp; /* file modification time? */    /* filename */} PACKED_ATTR() t_server_iconreply;/******************************************************//******************************************************/#define CLIENT_LADDERSEARCHREQ 0x2ffftypedef struct{    t_bnet_header h;    bn_int        clienttag;    bn_int        id;   /* (AKA ladder type) 1==standard, 3==ironman */    bn_int        type; /* (AKA ladder sort) */    /* player name */} PACKED_ATTR() t_client_laddersearchreq;#define CLIENT_LADDERSEARCHREQ_ID_STANDARD       0x00000001#define CLIENT_LADDERSEARCHREQ_ID_IRONMAN        0x00000003#define CLIENT_LADDERSEARCHREQ_TYPE_HIGHESTRATED 0x00000000#define CLIENT_LADDERSEARCHREQ_TYPE_MOSTWINS     0x00000002#define CLIENT_LADDERSEARCHREQ_TYPE_MOSTGAMES    0x00000003/******************************************************//******************************************************/#define SERVER_LADDERSEARCHREPLY 0x2ffftypedef struct /* FIXME: how does client know how many names?		  do we send separate replies for each name in the request? */{    t_bnet_header h;    bn_int        rank; /* 0 means 1st, etc */} PACKED_ATTR() t_server_laddersearchreply;#define SERVER_LADDERSEARCHREPLY_RANK_NONE 0xffffffff/******************************************************//******************************************************//*                          FF 30 1C 00 00 00 00 00            .0......32 37 34 34 37 37 32 39   31 34 38 32 38 00 63 6C    2744772914828.cl6F 75 64 00                                          oud.*/#define CLIENT_CDKEY 0x30fftypedef struct{    t_bnet_header h;    bn_int        spawn; /* FIXME: not sure if this is correct, but cdkey2 does it this way */    /* cd key */    /* owner name */ /* Was this always here? */} PACKED_ATTR() t_client_cdkey;#define CLIENT_CDKEY_UNKNOWN1 0x00000000/******************************************************//******************************************************//*                          FF 30 0E 00 01 00 00 00            .0......63 6C 6F 75 64 00                                    cloud.*/#define SERVER_CDKEYREPLY 0x30fftypedef struct{    t_bnet_header h;    bn_int        message;    /* owner name */} PACKED_ATTR() t_server_cdkeyreply;#define SERVER_CDKEYREPLY_MESSAGE_OK       0x00000001#define SERVER_CDKEYREPLY_MESSAGE_BAD      0x00000002#define SERVER_CDKEYREPLY_MESSAGE_WRONGAPP 0x00000003#define SERVER_CDKEYREPLY_MESSAGE_ERROR    0x00000004 /* disabled */#define SERVER_CDKEYREPLY_MESSAGE_INUSE    0x00000005/* (any other value seems to correspond to ok) *//******************************************************//******************************************************//*FF 36 34 00 00 00 00 00   0D 00 00 00 01 00 00 00    .64.............B5 AE 23 00 50 E5 D5 C0   DB 55 1E 38 0A F5 58 B9    ..#.P....U.8..X.47 64 C6 C2 9F BB FF B8   81 E7 EB EC 1B 13 C6 38    Gd.............852 6F 62 00                                          Rob.FF 36 34 00 00 00 00 00   0D 00 00 00 01 00 00 00    .64.............7F D7 00 00 90 64 77 2F   D7 5B 42 38 1F A1 A2 6F    .....dw/.[B8...oE8 FA BE F8 B6 0B BA 0F   CA 64 3A 17 14 56 83 AB    .........d:..V..42 6F 62 00                                          Bob.FF 36 35 00 00 00 00 00   10 00 00 00 04 00 00 00    .65.............0D 43 03 00 7A 11 07 ED   7C 9E 1E 38 E5 87 8B 3B    .C..z...|..8...;9C 19 91 D9 0D 10 FC C1   C0 86 8C 8D DA A4 45 0B    ..............E.XX XX XX XX 00                                       XXXX.FF 36 34 00 00 00 00 00   10 00 00 00 04 00 00 00    .64.............70 F9 02 00 58 F9 B6 E6   38 49 5C 38 38 9C 31 E4    p...X...8I\88.1.1D 3D 40 05 66 AD 4C C8   1D 12 8E 49 9E 60 1A CB    .=@.f.L....I.`..42 6F 62 00                                          Bob.*/#define CLIENT_CDKEY2 0x36fftypedef struct{    t_bnet_header h;    bn_int        spawn;    bn_int        keylen; /* without terminating NUL */    bn_int        productid;    bn_int        keyvalue1;    bn_int        sessionkey;    bn_int        ticks;    bn_int        key_hash[5];    /* owner name */} PACKED_ATTR() t_client_cdkey2;#define CLIENT_CDKEY2_SPAWN_TRUE  0x00000001#define CLIENT_CDKEY2_SPAWN_FALSE 0x00000000/******************************************************//******************************************************//*From Diablo II 1.08?                          FF 42 43 00 AB 4C A4 3B            .BC..L.;01 00 00 00 00 00 00 00   10 00 00 00 06 00 00 00    ................XX 60 12 00 00 00 00 00   5D 82 82 C4 F4 8F D0 91    X`......].......E1 5B AB 95 D9 EE EF 18   44 3E F1 C9 XX XX XX XX    .[......D>..XXXXXX XX XX XX XX XX XX XX   XX XX 00                   XXXXXXXXXX.FF 42 44 00 17 78 42 77   01 00 00 00 00 00 00 00    .BD..xBw........10 00 00 00 06 00 00 00   XX F3 10 00 00 00 00 00    ........X.......A8 29 8B C4 41 BD 33 AB   74 4C 1F 1E 5C XX CA 83    .)..A.3.tL..\X..7F E5 36 14 XX XX XX XX   XX XX XX XX XX XX XX XX    ..6.XXXXXXXXXXXXXX XX XX 00                                          XXX.FF 42 44 00 C6 25 A1 3B   01 00 00 00 00 00 00 00    .BD..%.;........10 00 00 00 06 00 00 00   XX F3 10 00 00 00 00 00    ........X.......C4 3F FB 05 94 0C AC D4   3B 63 B1 90 E4 XX 53 B9    .?......;c...XS.70 C3 6F 2E XX XX XX XX   XX XX XX XX XX XX XX XX    p.o.XXXXXXXXXXXXXX XX XX 00                                          XXX.*/#define CLIENT_CDKEY3 0x42fftypedef struct{    t_bnet_header h;    bn_int        unknown1; /* FIXME: some kind of salt? */    bn_int        unknown2; /* 01 00 00 00 */    bn_int        unknown3; /* 00 00 00 00 */    bn_int        unknown4; /* 10 00 00 00 */    bn_int        unknown5; /* 06 00 00 00 */    bn_int        unknown6; /* FIXME: value1? */    bn_int        unknown7; /* 00 00 00 00 */    bn_int        key_hash[5];    /* owner name */} PACKED_ATTR() t_client_cdkey3;#define CLIENT_CDKEY3_UNKNOWN1  0xffffffff#define CLIENT_CDKEY3_UNKNOWN2  0x00000001#define CLIENT_CDKEY3_UNKNOWN3  0x00000000#define CLIENT_CDKEY3_UNKNOWN4  0x00000010#define CLIENT_CDKEY3_UNKNOWN5  0x00000006#define CLIENT_CDKEY3_UNKNOWN6  0x00123456#define CLIENT_CDKEY3_UNKNOWN7  0x00000000/******************************************************//******************************************************//*                          FF 42 09 00 00 00 00 00            .B......00                                                                   FF 42 09 00 00 00 00 00   00                         .B.......*/#define SERVER_CDKEYREPLY3 0x42fftypedef struct{    t_bnet_header h;    bn_int        message;    /* owner name */ /* FIXME: or error message, or ... */} PACKED_ATTR() t_server_cdkeyreply3;#define SERVER_CDKEYREPLY3_MESSAGE_OK       0x00000000/******************************************************//******************************************************//*FF 34 0D 00 00 00 00 00   00 00 00 00 00             .4...........*/#define CLIENT_REALMLISTREQ 0x34fftypedef struct{    t_bnet_header h;    bn_int        unknown1;    bn_int        unknown2;} PACKED_ATTR() t_client_realmlistreq;/******************************************************//******************************************************//*0000:   FF 40 04 00                                          .@..            */#define CLIENT_REALMLISTREQ_110 0x40fftypedef struct{    t_bnet_header h;} PACKED_ATTR() t_client_realmlistreq_110;/******************************************************//******************************************************//*FF 34 5E 00 00 00 00 00   01 00 00 00 00 00 00 C0    .4^.............00 00 00 00 00 00 00 00   00 00 00 00 10 82 01 00    ................FF FF FF FF 00 00 00 00   42 65 74 61 57 65 73 74    ........BetaWest00 50 6C 65 61 73 65 20   73 65 6C 65 63 74 20 74    .Please select t68 69 73 20 61 73 20 79   6F 75 72 20 72 65 61 6C    his as your real6D 20 64 75 72 69 6E 67   20 62 65 74 61 00          m during beta.ff 34 5e 00 00 00 00 00   01 00 00 00 00 00 00 c0    .4^.............00 00 00 00 00 00 00 00   00 00 00 00 bc 95 01 00    ................ff ff ff ff 00 00 00 00   42 65 74 61 57 65 73 74    ........BetaWest00 50 6c 65 61 73 65 20   73 65 6c 65 63 74 20 74    .Please select t68 69 73 20 61 73 20 79   6f 75 72 20 72 65 61 6c    his as your real6d 20 64 75 72 69 6e 67   20 62 65 74 61 00          m during beta.ff 34 5e 00 00 00 00 00   01 00 00 00 00 00 00 c0    .4^.............00 00 00 00 00 00 00 00   00 00 00 00 c8 99 01 00    ................ff ff ff ff 00 00 00 00   42 65 74 61 57 65 73 74    ........BetaWest00 50 6c 65 61 73 65 20   73 65 6c 65 63 74 20 74    .Please select t68 69 73 20 61 73 20 79   6f 75 72 20 72 65 61 6c    his as your real6d 20 64 75 72 69 6e 67   20 62 65 74 61 00          m during beta.from bnetd-0.3.23pre18 to Diablo II 1.03      FF 34 4B 00 00 00   00 00 01 00 00 00 00 00      .4K........... 00 C0 00 00 00 00 00 00   00 00 00 00 00 00 10 82    ................ 01 00 FF FF FF FF 00 00   00 00 51 61 72 61 74 68    ..........Qarath 52 65 61 6C 6D 00 54 48   45 20 43 68 6F 69 63 65    Realm.THE Choice 20 46 6F 72 20 4E 6F 77   28 74 6D 29 00              For Now(tm).*/#define SERVER_REALMLISTREPLY 0x34ff /* realm list reply? */typedef struct{    t_bnet_header h;    bn_int        unknown1;    bn_int        count;    /* realm entries */} PACKED_ATTR() t_server_realmlistreply;#define SERVER_REALMLISTREPLY_UNKNOWN1 0x00000000typedef struct{    bn_int unknown3;    bn_int unknown4;    bn_int unknown5;    bn_int unknown6;    bn_int unknown7; /* this one is always different... 00 01 XX XX.. what is it? */    bn_int unknown8;    bn_int unknown9;    /* realm name */    /* realm description */} PACKED_ATTR() t_server_realmlistreply_data;#define SERVER_REALMLISTREPLY_DATA_UNKNOWN3 0xc0000000#define SERVER_REALMLISTREPLY_DATA_UNKNOWN4 0x00000000#define SERVER_REALMLISTREPLY_DATA_UNKNOWN5 0x00000000#define SERVER_REALMLISTREPLY_DATA_UNKNOWN6 0x00000000#define SERVER_REALMLISTREPLY_DATA_UNKNOWN7 0x00018210 /* 98832 or 1;33296 */#define SERVER_REALMLISTREPLY_DATA_UNKNOWN8 0xffffffff#define SERVER_REALMLISTREPLY_DATA_UNKNOWN9 0x00000000/******************************************************//******************************************************//*# 44 packet from server: type=0x40ff(unknown) length=40 class=bnet0000:   FF 40 28 00 00 00 00 00   01 00 00 00 01 00 00 00    .@(.............0010:   45 75 72 6F 70 65 00 52   65 61 6C 6D 20 66 6F 72    Europe.Realm for0020:   20 45 75 72 6F 70 65 00                               Europe.        */#define SERVER_REALMLISTREPLY_110 0x40fftypedef struct{    t_bnet_header h;    bn_int        unknown1;    bn_int        count;    /* realm entries */} PACKED_ATTR() t_server_realmlistreply_110;#define SERVER_REALMLISTREPLY_110_UNKNOWN1 0x00000000typedef struct{    bn_int unknown1;    /* realm name */    /* realm description */} PACKED_ATTR() t_server_realmlistreply_110_data;#define SERVER_REALMLISTREPLY_110_DATA_UNKNOWN1 0x00000001#define CLIENT_PROFILEREQ 0x35fftypedef struct /* join realm request */{    t_bnet_header h;    bn_int	  count;    /* player name */} PACKED_ATTR() t_client_profilereq;#define SERVER_PROFILEREPLY 0x35fftypedef struct /* realm join reply? */{    t_bnet_header h;    bn_int	  count;	/* same as in req */    bn_byte	  fail;		/* != 0 if a problem occured */    /* profile-description */    /* profile-location */    /* bn_int clanTAG */} PACKED_ATTR() t_server_profilereply;#define CLIENT_UNKNOWN_37 0x37fftypedef struct /* character list request, character list upload? */{    t_bnet_header h;    bn_int        opencount;  /* Number of OPEN characters on user's machine!    */			      /* Always zero for "closed" connections.           */    /* unknown2 */            /* subsequent blocks of t_d2char_info or something */                              /* similar, so server could read this list and     */                              /* include in the 0x37ff reply as a choice (this   */                              /* makes sense cuz the server does NOT store open  */                              /* character details - this also explains why      */                              /* unknown1 is always 0 in the beta, and the 0x00  */                              /* of unknown2 acts as a EOF when client read the  */                              /* t_d2char_info structures                        */} PACKED_ATTR() t_client_unknown_37;/******************************************************//******************************************************//*

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -