• Welcome to Valhalla Legends Archive.

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - ptn

There was once information posted about those packets here, but few fields were not interpreted. Anyone knows what their meaning is? I tried various CRC16, for whole and parts of the packets, xoring various parts, and got nothing similiar.

#define W3GS_CLIENTSYNC 0x27 // Clients Sync packets (only if packet size = 9)
   BYTE unknown; // most of the time 0, probably sync too. I don't really know if this extra byte is at end, and what all the fields mean
   SHORT sync; // ?
   SHORT crc16; // ?
#define W3GS_CLIENTACTREQ 0x26 // Client requests action
   SHORT sync; // dont know - maybe sync value
   SHORT crc16; // possible crc16?
   BYTE subPktData[1]; // sub packet data - consist game command

#define W3GS_HOSTSYNC 0x0C // Host Sync packets or/with actions (only sync when packet size = 6)
#define W3GS_HOSTACT  0x0C
struct sW3GS_HOSTACT {
   SHORT sync; // 0xfa | 0x6D | 0x6E | 0x7D - time slot in ms, usually ~250 for battle.net 100 for lan/listchecker
   SHORT crc16; // possible crc16 value // command time in ticks?
   BYTE playerNum; // 1 (for host)
   SHORT subPktSize; // sub packet size = packet size - 11 // multiple subpackets allowed, each has size in front
   BYTE subPktData[1]; // sub packet data - consist game command

Usually packets look like that (these are real, in order of appearance - sync response/sync req):
f7 27 09 00 a8 5f ce 03  02
f7 0c 06 00 fa 00 <-- this is fully understood 0xfa = 250, it must be sync
f7 27 09 00 18 3a 1a f4  8c <-- this is  what I'm interested in, probably first bytes are sync response, but why 5 bytes? Does not seem too change like GetTickCount, does not increase like number of packets or bytes
f7 0c 06 00 fa 00

What could it be?
General Programming / W3GS program C++
September 30, 2007, 07:38 AM
Some people here were interested in W3GS packets. I used old posts from here, replays format description, bnetdocs and some of my own research to create a program interpreting packets. It's main purpose is easier game hosting on battle.net.

Full source code is here:

Main webpage:

Source code is far from perfect, but it's working :)
If someone wants to write a "banlist" or similiar program it's a good place to start.