CMD AUTH LOGON CHALLENGE Client
Jump to navigation
Jump to search
CMD_AUTH_LOGON_CHALLENGE and CMD_AUTH_RECONNECT_CHALLENGE have the same client packet.
Packet Layout
This packet does not change at all between versions.
Offset | Size / Endianness | Type | Name | Description |
---|---|---|---|---|
0x00 | 1 / - | uint8 | opcode | 0x0 for CMD_AUTH_LOGON_CHALLENGE, CMD_AUTH_RECONNECT_CHALLENGE always has 0x2. |
0x01 | 1 / - | uint8 | protocol_version | 8 for 2.4.3 connection and reconnection. 3 for 1.12 connection attempts and 2 for 1.12 reconnection attempts. Unknown for 1.1. |
0x02 | 2 / Little | uint16 | size | length of package minus the size of the command, protocol_version and size fields. |
0x04 | 4 / Little | uint8[4] | game_name | Always null terminated 'WoW\0' string. |
0x08 | 3 / - | uint8[3] | version | [0x01, 0x01, 0x02] for 1.1.2. [0x01, 0x0C, 0x01] for 1.12.1. |
0x0B | 2 / Little | uint16 | build | 4125, aka Revision |
0x0D | 4 / Big | uint8[4] | platform | eg '\0x86'. Has a leading zero for 'x86'. |
0x11 | 4 / Big | uint8[4] | os | eg '\0Win'. Has a leading zero for 'Win'. |
0x15 | 4 / Big | uint8[4] | locale | eg 'enUS' |
0x19 | 4 / Little | uint32 | worldregion_bias | Offset in minutes from UTC time, eg. 180 means 180 minutes |
0x1D | 4 / Big | uint32 | ip | client_ip |
0x21 | 1 / - | uint8 | account_name_length | Length of the account_name field in bytes. The client can only send 16 characters, but this can still be more than 16 bytes if non-ASCII characters are used. |
0x22 | account_name_length / Big | uint8[account_name_len] | account_name | UTF-8 encoded uppercase string of the username. Not all unicode characters are uppercased correctly. |
Size
Entire packet
The only variable field is account_name which is limited to 16 UTF-8 characters by the client.
Field
The value of the size field can be calculated as 30 + account_name_length. This field is the size without the opcode, protocol_version and size fields.