-
Notifications
You must be signed in to change notification settings - Fork 2
CD‐Key service
Michał Kapała edited this page Aug 14, 2024
·
7 revisions
CD-Key service validated online key activation and authorized the game for online feature access.
Internally CD-Key service uses the following classes:
-
clDataList
for data serialization -
clCDKeyMessage
(a wrapper forclSimpleMessage
) for data encryption -
CMessageBuffer
for message queueing
There are 5 request/response exchanges with the CD Key service:
- Challenge
- Key activation
- Authorization
- Validation
- Player status
Initial handshake with the server.
struct cdKeyActChalReq {
unsigned char msgType;
unsigned int size;
unsigned char encDataList[18];
};
Note:
-
msgType
is 0xD3 -
size
is big-endian - After decryption (Blowfish), the data list contains:
- message ID - incremental packet id (string)
- request ID - 1 (string)
- unknown - 1 (string)
- empty data list
The response contains a result value and a buffer on success.
The data list looks like this serialized:
b's1\0s1\0s1\0[s38\0[b\x00\x00\x00\x14<20 bytes>]]'