Server Help

ASSS Questions - Continuum client encryption

kzar - Sun Jun 18, 2006 1:10 pm
Post subject: Continuum client encryption
Hi, sorry if this is a commonly asked question but I couldn't find out by searching. I have been reading about continuum and asss and subspace and pritik etc recently and if I understand right at the moment all that protects subspace from cheaters is the encryption in continuum which is hidden behind some clever anti debugger tricks. My question is, if continuum connects to asss then surely asss must use the same encryption, but asss is opensource so how is the encryption protected? Thanks
CypherJF - Sun Jun 18, 2006 2:05 pm
Post subject:
The encryption routines are closed-source libraries which are built/compiled by grelminar and distributed in the distribution.

I, personally, have wondered how long it'd take someone to use reflection to utilize these libraries in their own applications.
kzar - Sun Jun 18, 2006 2:36 pm
Post subject:
Thanks for the reply. Sorry if it sounds stupid but what do you meen by

"to use reflection to utilize these libraries in their own applications."

do you meen look at how asss uses the library and then use them in your own in the same way?

Thanks
Dr Brain - Sun Jun 18, 2006 3:41 pm
Post subject:
CypherJF wrote:
I, personally, have wondered how long it'd take someone to use reflection to utilize these libraries in their own applications.


That'd only work if they wanted to run a server.
CypherJF - Sun Jun 18, 2006 3:53 pm
Post subject:
Eh, I'm sure there are people out there willing to give it a shot. icon_smile.gif
kzar - Sun Jun 18, 2006 3:57 pm
Post subject:
Dr Brain wrote:
[..]



That'd only work if they wanted to run a server.


Is that because the encryption used to send packets from the client is different from the encryption used to send packets from the server?

Edit:

Also I am curious, why do the encrypt and decrypt functions need a player structure?

int (*Encrypt)(Player *p, byte *pkt, int len);

Also I understand that this is a function that returns an integer and take a player structure pointer, a pointer to the packet and its length but I dont understand what the (*Encrypt) bit meens. Could you tell me what it does?

Thanks
Dr Brain - Sun Jun 18, 2006 5:41 pm
Post subject:
kzar wrote:
Is that because the encryption used to send packets from the client is different from the encryption used to send packets from the server?


Yes, but with enough access to the code, someone could engineer a working client side encryption, so it needs to remain obscure.

kzar wrote:
Also I am curious, why do the encrypt and decrypt functions need a player structure?


I don't know off the top of my head, but it's probably a boring reason.

kzar wrote:
int (*Encrypt)(Player *p, byte *pkt, int len);

Also I understand that this is a function that returns an integer and take a player structure pointer, a pointer to the packet and its length but I dont understand what the (*Encrypt) bit meens. Could you tell me what it does?


That's a function pointer. C structs don't have methods like C++ does, so the solution is to put a pointer to the function inside the struct.
Smong - Mon Jun 19, 2006 7:14 am
Post subject:
If you want each player to use a different key for encryption, you need to know which player you are dealing with. So the player is given to you when you encrypt/decrypt.
All times are -5 GMT
View topic
Powered by phpBB 2.0 .0.11 © 2001 phpBB Group