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:
- String of game title = "Ghost.Recon.Online"
- Hex bytes of string =
47 68 6F 73 74 2E 52 65 63 6F 6E 2E 4F 6E 6C 69 6E 65
- 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`