Author | Message | Time |
---|---|---|
Paul | I tried looking in the BnetDocs section, but couldn't find anything. Does anyone know what 0x15 and 0x21 are used for? I notice these are constantly being sent to the server while parking in a channel. Some form of keepalive or something else? | December 4, 2003, 8:23 PM |
Skywing | [quote author=Paul link=board=17;threadid=4076;start=0#msg33650 date=1070569410] I tried looking in the BnetDocs section, but couldn't find anything. Does anyone know what 0x15 and 0x21 are used for? I notice these are constantly being sent to the server while parking in a channel. Some form of keepalive or something else? [/quote] Those are related to the ad banner. | December 4, 2003, 9:09 PM |
dRAgoN | You beat me to it 8( | December 4, 2003, 9:11 PM |
Soar | here is some codes used in a native bnetd for D2 1.10, all new packets' format from 1.09 to 1.10 are recoreded: [code] #define CLIENT_REALMLISTREQ_110 0x40ff typedef struct { t_bnet_header h; } t_client_realmlistreq_110 PACKED_ATTR(); #define SERVER_REALMLISTREPLY_110 0x40ff typedef struct { t_bnet_header h; bn_int unknown1; bn_int count; /* realm entries */ } t_server_realmlistreply_110 PACKED_ATTR(); #define SERVER_REALMLISTREPLY_110_UNKNOWN1 0x00000000 typedef struct { bn_int u1; /* always 1*/ /* realm name */ /* realm description */ } t_server_realmdata_110 PACKED_ATTR(); #define CLIENT_SETEMAILREQ 0x59ff typedef struct { t_bnet_header h; /* email address */ } t_client_setemailreq PACKED_ATTR(); #define SERVER_SETEMAILREQ 0x59ff /* send this packet to client before login ok packet will cause client to enter input email screen */ typedef struct { t_bnet_header h; } t_server_setemailreq PACKED_ATTR(); #define CLIENT_GETPASSWORDREQ 0x5aff typedef struct { t_bnet_header h; /* account name */ /* email address */ } t_client_getpasswordreq PACKED_ATTR(); #define CLIENT_CHANGEEMAILREQ 0x5bff typedef struct { t_bnet_header h; /* account name */ /* old email address */ /* new email address */ } t_client_changeemailreq PACKED_ATTR(); #define CLIENT_MOTDREQ 0x46ff typedef struct { t_bnet_header h; bn_int last_news_time; /* date of the last news item the client has */ } t_client_motdreq PACKED_ATTR(); #define SERVER_MOTDREPLY 0x46ff typedef struct { t_bnet_header h; bn_byte msgtype; /* we only saw "1" type so far */ bn_int curr_time; /* as seen by the server */ bn_int first_news_time; /* the oldest news item's timestamp */ bn_int timestamp; /* the timestamp of this news item */ /* it is equal with the latest news item timestamp for the welcome message */ bn_int timestamp2; /* always equal with the timestamp except the last packet which shows in the right panel */ /* text */ } t_server_motdreply PACKED_ATTR(); #define SERVER_MOTDREPLY_MSGTYPE 0x01 #define SERVER_MOTDREPLY_WELCOME 0x00000000 /* this packet is sent right after cdkey and version auth reply success and crashdump exist 0x0000: ff 5d 14 00 01 01 00 27 00 0a 01 05 00 00 c0 00 .].....'........ 0x0010: 00 00 00 00 .... */ #define CLIENT_CRASHDUMP 0x5dff typedef struct { t_bnet_header h; /* crashdump file data */ /* contains data like client version, exception code, code address */ } t_client_crashdump PACKED_ATTR(); [/code] | December 13, 2003, 9:47 AM |
Kp | [quote author=UserLoser. link=board=17;threadid=4076;start=0#msg35131 date=1071333021]Here's what I use: For 0x15, C->S DWORD '68XI' DWORD Product DWORD Not sure what that is, so I use the version byte DWORD Some sort of client key maybe? [/quote] 'IX86', 'Product', ad cookie (same as the one you mentioned in 0x21; 0 if you haven't received an ad this connection), time (in seconds since the epoch (1/1/1970); returned by time(2)) [quote author=UserLoser. link=board=17;threadid=4076;start=0#msg35131 date=1071333021] For 0x21, C->S: DWORD '68XI' DWORD Product DWORD Cookie from the first DWORD of 0x15 you last recieved from server. WORD 0x00 - Not sure what this is, so I use 0x00[/quote] Actually, this is two strings (or it used to be); however, they're always empty now, so sending a 16 bit zero is correct (to be really accurate you'd send two empty strings, but 16 bits of zero is interpreted as two nulls, so it's effectively the same). | December 13, 2003, 7:58 PM |
Soar | [quote author=UserLoser. link=board=17;threadid=4076;start=0#msg35127 date=1071332234] Crash Dump? 0x5d? Is this real or is it just a PVPGN/BnetD type of thing? [/quote] I dunno what it is either, the bnetd I get to support D2 1.10 deals nothing to this received packet from client. | December 14, 2003, 12:48 PM |