BNETDocs
C>S 0x51 SID_AUTH_CHECK
Message Id:0x51
Message Name:SID_AUTH_CHECK
Direction:Client to Server
Used By:Starcraft Original, Starcraft Broodwar
Diablo II, Diablo II Lord of Destruction
Warcraft III Reign of Chaos, Warcraft III The Frozen Throne
Format:

(UINT32) Client Token
(UINT32) EXE Version
(UINT32) EXE Hash
(UINT32) Number of CD-keys in this packet
(UINT32) Spawn Key (1 is TRUE, 0 is FALSE) **

For each Key:
   (UINT32)     Key length
   (UINT32)     Key Product value 
   (UINT32)     Key Public value
   (UINT32)     Unknown (0)
    (UINT8)[20] Hashed Key Data

(STRING) EXE Information
(STRING) Key owner name *

Remarks

Contains the EXE Version and Hash as reported by CheckRevision() and CDKey values.

  • Client Token: a random value generated by the client and used for key and password hashing.
  • EXE Version: The Major.Minor.Revision.Build number of the EXE, with bytes in that order. This can be set to 0 on official servers, as only the EXE hash is checked.
  • EXE Hash: The checksum value calculated by the ValueString returned in SID_AUTH_INFO.

The data that should be hashed for Hashed Key Data is:

  • For 13/16 character keys (hashed using BSHA1):
    1. (UINT32) Client Token
    2. (UINT32) Server Token
    3. (UINT32) Key Product value (from decoded CD key)
    4. (UINT32) Key Public value (from decoded CD key)
    5. (UINT32) 0
    6. (UINT32) Key Private value (from decoded CD key)
  • For 26 character keys (hashed using standard SHA1):
    1. (UINT32) Client Token
    2. (UINT32) Server Token
    3. (UINT32) Key Product value (from decoded CD key)
    4. (UINT32) Key Public value (from decoded CD key)
    5. (UINT8)[10] Key Private value (from decoded CD key)

The data that should be used for EXE Information should be separated by one space, in the format of:

  1. EXE Name (ex. war3.exe)
  2. Last Modified Date (ex. 08/16/09)
  3. Last Modified Time (ex. 19:21:59)
  4. Filesize in bytes (ex. 471040)

An example of a valid string would be: war3.exe 08/16/09 19:21:59 471040 This can be set to null or any other value on official servers, as only the EXE Hash is checked.

* The CD Key owner name must be no greater than 15 characters, otherwise it becomes trimmed by Battle.net.

** Spawn value can only be TRUE for STAR, JSTR, and W2BN. Any other game will cause unexpected results.

| Edited:
Comments

no one has commented yet.