DO Join Request Message - zeroKilo/GROBackendWV GitHub Wiki

DO Join Request Message

  • BYTE byType; //0 for JoinRequestMessage
  • Quazal::ProcessAuthentication pAuth; //see below
  • Quazal::StationIdentification sInfo; //see below

Quazal::ProcessAuthentication

  • BYTE structVersion; //should be 0x2
  • BYTE libraryVersion; //should be 0x2
  • BYTE unknown; //should be 0xA
  • DWORD quazalMajorVersion; //should be 0x10004
  • DWORD quazalMinorVersion; //should be 0x1CA2B
  • DWORD titleChecksum; //should be 0x6BD
  • DWORD protocolFlags; //should be 0x0

Quazal::StationIdentification

  • DWORD m_strIdentificationToken;
  • DWORD m_strProcessName;
  • DWORD m_uiProcessType;
  • DWORD m_uiProductVersion;

Title Checksum Algorithm

the checksum is simply the sum of all ascii chars in the game title

example:

  1. String of game title = "Ghost.Recon.Online"
  2. Hex bytes of string = 47 68 6F 73 74 2E 52 65 63 6F 6E 2E 4F 6E 6C 69 6E 65
  3. Sum = 0x6BD

Example Message

`

13.05.2020 22:07:20 : [05][UDP Dedicated Server] received : UDPPacket { DATA ( R WS )}
13.05.2020 22:07:20 : [10][UDP Dedicated Server] received : 11 11 72 25 78 56 34 12 03 00 00 21 00 02 78 9C 53 62 00 02 26 26 2E 16 06 46 06 ED 53 8C 0C 7B D9 18 C0 80 11 8C 60 E0 23 00 33 65 02 E2 A6 
13.05.2020 22:07:20 : [10][UDP Dedicated Server] received : UDPPacket {
	From         : VPort[port=01 type=DO]
	To           : VPort[port=01 type=DO]
	Flags        : [FLAG_RELIABLE][FLAG_NEED_ACK][FLAG_HAS_SIZE]
	Type         : DATA
	Session ID   : 0x25
	Signature    : 0x12345678
	Sequence ID  : 0x0003
	Part Number  : 0x00
	Payload Size : 0x0027
	PayLoad      : 22 00 00 00 00 02 02 0A 04 00 01 00 2B CA 01 00 BD 06 00 00 00 00 00 00 01 00 00 01 00 00 00 00 00 00 00 00 00 00 F1 
	Checksum     : 0xA6
}
BYTE  00 		//DO method = JoinRequest
			//Quazal::ProcessAuthentication
BYTE  02 		//Structure Version
BYTE  02 		//Library Protocol
BYTE  0A 		//unknown, should be 0xA
DWORD 04 00 01 00	//Quazal Major Version
DWORD 2B CA 01 00	//Quazal Minor Version
DWORD BD 06 00 00	//Title Checksum
DWORD 00 00 00 00	//Protocol Flags
			//Quazal::StationIdentification
DWORD 01 00 00		//m_strIdentificationToken
DWORD 01 00 00		//m_strProcessName
DWORD 00 00 00 00	//m_uiProcessType
DWORD 00 00 00 00	//m_uiProductVersion`