Потому что там используется RSA.
var name = Account.Login;
var pw = Account.Password;
var loginInfo = new byte[128];
loginInfo[0x5B] = 0x24;
for (var i = 0; i < name.Length; i++) loginInfo[0x5E + i] = (byte) name[i];
for (var i = 0; i < pw.Length; i++) loginInfo[0x6C + i] = (byte) pw[i];
byte[] exponent = {1, 0, 1};
var rsaKeyInfo = new RSAParameters
{
Modulus = GameDataToServer.RsaKey,
Exponent = exponent
};
var poo = new RSA(); //Set RSAKeyInfo to the public key values.
poo.ImportParameters(rsaKeyInfo);
var outb = poo.EncryptValue(loginInfo);
var loginSend = new byte[176];
outb.CopyTo(loginSend, 128 - outb.Length + 1);
loginSend[129] = GameDataToServer.Session[0];
loginSend[130] = GameDataToServer.Session[1];
loginSend[131] = GameDataToServer.Session[2];
loginSend[132] = GameDataToServer.Session[3];
loginSend[133] = 0x23; //gameguard reply start
loginSend[134] = 0x01;
loginSend[135] = 0x00;
loginSend[136] = 0x00;
loginSend[137] = 0x67; //
loginSend[138] = 0x45;
loginSend[139] = 0x00;
loginSend[140] = 0x00;
loginSend[141] = 0xAB; //
loginSend[142] = 0x89;
loginSend[143] = 0x00;
loginSend[144] = 0x00;
loginSend[145] = 0xEF; //
loginSend[146] = 0xCD;
loginSend[147] = 0x00;
loginSend[148] = 0x00; //game guard reply stop
loginSend[149] = 0x08; //
loginSend[150] = 0x00;
loginSend[151] = 0x00;
loginSend[152] = 0x00;
loginSend[153] = 0x00; //
loginSend[154] = 0x00;
loginSend[155] = 0x00;
loginSend[156] = 0x00;
loginSend[157] = 0x00; //
loginSend[158] = 0x00;
loginSend[159] = 0x00;
General.CheckSum(loginSend, 160);
SendToServer(loginSend);Code: Java