
Originally Posted by
Zak©
Check the InitCrypto and InitRC4 packets on your packetlogger make sure that they match your current InitCrypto and RC4 (Even though they should have not been changed/updated)
Also try to confirm that you are actually sending the InitCrypto and RC4 packets, by using your debug console. This will allow you to know if you have the correct headers.
Logs:
Code:
[LOG] > CLIENT ID: '2433': [0][0][0]%[9][0] 85e9fa6976d118c3f5e4f7831cd0740c[0]
[LOG] > CLIENT ID: '43': [0][0][0]Q[0]+[0]M35455673808594598242305055182083401080254686613558842382426373912517598787158
PHP Code:
Client.Crypto = new HabboCrypto(new BigInteger("86851DD364D5C5CECE3C883171CC6DDC5760779B992482BD1E20DD296888DF91B33B936A7B93F06D29E8870F703A216257DEC7C81DE0058FEA4CC5116F75E6EFC4E9113513E45357DC3FD43D4EFAB5963EF178B78BD61E81A14C603B24C8BCCE0A12230B320045498EDC29282FF0603BC7B7DAE8FC1B05B52B2F301A9DC783B7", 16), new BigInteger(3), new BigInteger("59AE13E243392E89DED305764BDD9E92E4EAFA67BB6DAC7E1415E8C645B0950BCCD26246FD0D4AF37145AF5FA026C0EC3A94853013EAAE5FF1888360F4F9449EE023762EC195DFF3F30CA0B08B8C947E3859877B5D7DCED5C8715C58B53740B84E11FBC71349A27C31745FCEFEEEA57CFF291099205E230E0C7C27E8E1C0512B", 16));
string Token = new BigInteger(DiffieHellman.GenerateRandomHexString(15), 16).ToString();
CarbonEnvironment.Bannertokens.Add(Token, new List<string>() { Client.Crypto.GetPrime.ToString(), Client.Crypto.GetGenerator.ToString() });
ServerMessage Message = new ServerMessage(HeadersOut.BannerToken);
Message.Append<string>(Token);
Message.Append<bool>(false);
Client.SendPacket(Message);
PHP Code:
string DecryptedKey = Request.ReadUTF();
if (!Client.Crypto.InitializeRC4(DecryptedKey))
{
Console.WriteLine("NO RC4 SHIT!");
return;
}
ServerMessage Message = new ServerMessage(HeadersOut.PublicKey);
Message.Append<string>(Client.Crypto.GetPublicKey.ToString());
Client.SendPacket(Message);
PHP Code:
public static readonly short BannerToken = 2433;
public static readonly short PublicKey = 43;
PHP Code:
if (Crypto != null)
{
if (Crypto.Initialized)
{
bytes = Crypto.RC4.Decipher(bytes);
}
}
while (bytes != null && bytes.Length > 0)
{
var message = new ClientMessage(bytes);
CarbonEnvironment.GetGame().GetMessageHandler().Handle(this, message);
bytes = message.Remain;
}
Also no sending of PublicKey -> no new request of bytes.