CMD_AUTH_LOGON_CHALLENGE_Client

Protocol Version *

First message sent by the client when attempting to connect. The server will respond with CMD_AUTH_LOGON_CHALLENGE_Server.

Has the exact same layout as CMD_AUTH_RECONNECT_CHALLENGE_Client.

Wowm Representation

Autogenerated from wowm file at wow_message_parser/wowm/login/cmd_auth_logon/challenge_client.wowm:21.

clogin CMD_AUTH_LOGON_CHALLENGE_Client = 0x00 { ProtocolVersion protocol_version; u16 size = self.size; u32 game_name = "\0WoW"; Version version; Platform platform; Os os; Locale locale; i32 utc_timezone_offset; IpAddress client_ip_address; String account_name; }

Login messages have a header of 1 byte with an opcode. Some messages also have a size field but this is not considered part of the header.

Login Header

OffsetSize / EndiannessTypeNameDescription
0x001 / -uint8opcodeOpcode that determines which fields the message contains.

Body

OffsetSize / EndiannessTypeNameComment
0x011 / -ProtocolVersionprotocol_versionDetermines which version of messages are used for further communication.
0x022 / Littleu16size
0x044 / Littleu32game_name
0x085 / -Versionversion
0x0D4 / -Platformplatform
0x114 / -Osos
0x154 / -Localelocale
0x194 / Littlei32utc_timezone_offsetOffset in minutes from UTC time. 180 would be UTC+3
0x1D4 / BigIpAddressclient_ip_address
0x21- / -Stringaccount_nameReal clients can send a maximum of 16 UTF-8 characters. This is not necessarily 16 bytes since one character can be more than one byte.
Real clients will send a fully uppercased username, and will perform authentication calculations on the uppercased version.
Uppercasing in regards to non-ASCII values is little weird. See https://docs.rs/wow_srp/latest/wow_srp/normalized_string/index.html for more info.

Examples

Example 1

Comment

x86 Windows user on enGB attempting to log in with username 'A'.

0, // opcode (0) 3, // protocol_version: ProtocolVersion THREE (3) 31, 0, // size: u16 87, 111, 87, 0, // game_name: u32 1, // Version.major: u8 12, // Version.minor: u8 1, // Version.patch: u8 243, 22, // Version.build: u16 54, 56, 120, 0, // platform: Platform X86 ("\0x86") 110, 105, 87, 0, // os: Os WINDOWS ("\0Win") 66, 71, 110, 101, // locale: Locale EN_GB ("enGB") 60, 0, 0, 0, // utc_timezone_offset: i32 127, 0, 0, 1, // client_ip_address: IpAddress 1, // string length 65, // account_name: String