XIV Dev Wiki
Comment on page


Encoded Process Argument

Upon launching the game, the retail launcher passes handful of information (e.g. login token, client language, etc...) to the game that usually looks like this:

Encoding Process

  • Encrypt UTF-8 plain text using Blowfish; you need to pad the buffer with zero as needed
    • Key is GetTickCount() & 0xFFFF_0000
    • Block cipher mode of operation is ECB (yes, you read it right.)
  • Convert encrypted bytes to Base64URL
  • Format it as //**sqex0003{base64}{checksum}**//



char[] ChecksumTable = {
'f', 'X', '1', 'p', 'G', 't', 'd', 'S',
'5', 'C', 'A', 'P', '4', '_', 'V', 'L'
char GetChecksum(uint key) {
// mask the nibble we're looking for
var value = key & 0x000F_0000;
return ChecksumTable[value >> 16];
Last modified 9mo ago