Murloc Cult

Back to the archive

First character, Trollbaye, created by a 3.3.5a protocol mini-client

A minimal client implements SRP6 authentication, the worldserver's encrypted session and character creation. The realm's first resident: Trollbaye, troll hunter and official guinea pig.

The character

Trollbaye (troll + *cobaye*, French for guinea pig), level 1 troll hunter, Valley of Trials (Durotar). His job: be the guinea pig for every server change.

The mini-client

Instead of writing directly to the database, the character is created through the path a real client takes, so the core applies its own rules (name, race, class, position, starting gear):

  1. authserver: AUTH_LOGON_CHALLENGE / AUTH_LOGON_PROOF (SRP6), which yields the session key K.
  2. worldserver: SMSG_AUTH_CHALLENGE, then CMSG_AUTH_SESSION with the proof SHA1(account, 0, client seed, server seed, K).
  3. Header encryption: RC4 seeded with HMAC-SHA1(fixed key, K), first 1024 bytes dropped.
  4. CMSG_CHAR_CREATE then CMSG_CHAR_ENUM to check.

Incident

First attempt: no readable answer after the session opened. The two fixed encryption keys were swapped in the client; fixed according to AuthCrypt.cpp (the server encrypts with CC98…, decrypts with C2B3…).

Check

Response 0x2F (success); in the database: map 1, Valley of Trials coordinates, 7 starting items.