Packet encryption.

06/22/2009 01:09 Some-Guy#1
Not sure if anyone has tried making a proxy yet, other than the one that is stickied (which is injected and I imagine directly hooks the games send function bypassing the need for encryption?).

Anyway, just curious if anyone knows what sort of encryption is being used on packets?

US server for the record.
06/22/2009 01:22 ms​#2
XOR algorithm

For the packets from server to client a fixed string is used which are getting XOR'd with the packet string.
Packets from client to server are using XOR encryption too, but the string changes.

The internal call which is encrypting client packets is located at 0x00401000 and the one which is decrypting server packets is located at 0x00401040. Both calls require 2 arguments: The first is a pointer to the string which you want to encrypt/decrypt and the second one is the length of the string.

But since Shaiya uses the XOR algorithm you can use exactly the same function for encrypting and decrypting again.
06/22/2009 17:29 Some-Guy#3
Quote:
Originally Posted by Disconnect View Post
XOR algorithm

For the packets from server to client a fixed string is used which are getting XOR'd with the packet string.
Packets from client to server are using XOR encryption too, but the string changes.

The internal call which is encrypting client packets is located at 0x00401000 and the one which is decrypting server packets is located at 0x00401040. Both calls require 2 arguments: The first is a pointer to the string which you want to encrypt/decrypt and the second one is the length of the string.

But since Shaiya uses the XOR algorithm you can use exactly the same function for encrypting and decrypting again.
Thanks alot :) Planning on making a stand alone proxy. Not looked in to function hooking much, although I know a little.