
Originally Posted by
Kang Jinsu
okay. But I don't know how to fix the server.
I need to find a packet, but I can't figure out how to do it.
The emulator used packet encryption for the client, since the client source code works without packet encryption in the emulator, encryption must be turned off.
I studied the assembly emulator revised
First change key:
**\Shared\Saga.Shared\Cryptography\Crypto.cs
Code:
public static byte[] StaticKey = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
//public static byte[] StaticKey = { 0x40, 0x21, 0xBF, 0xE4, 0xB0, 0xC7, 0xB8, 0xF0, 0xB8, 0xA3, 0xB0, 0xDA, 0xC1, 0xF6, 0x24, 0x00 };
Second change
**\Saga.Gateway\Network\GatewayClient.cs
Code:
private void OnHeader()
{
Trace.TraceInformation("Header Recieved from {0}", this.socket.RemoteEndPoint);
try
{
SMSG_IDENTIFY spkt2 = new SMSG_IDENTIFY();
this.Send((byte[])spkt2);
/*
//byte[] tempServerKey = Encryption.GenerateKey();
//byte[] expandedServerKey = Encryption.GenerateDecExpKey(tempServerKey);
SMSG_SENDKEY spkt = new SMSG_SENDKEY();
//spkt.Key = expandedServerKey;
spkt.Collumns = 4;
spkt.Rounds = 10;
spkt.Direction = 2;
this.Send((byte[])spkt);
//this.serverKey = tempServerKey;*/
}
catch (Exception ex)
{
Trace.TraceError("An unhandled exception occured {0}", ex.Message);
this.Close();
}
}
As an example of decrypting packages. Something similar can be done in the Saga Legacy version.