[Workshop] Updating code to work post client V.5018

01/01/2009 13:28 tanelipe#16
Bobo you may also use the high6's modified Conquer.exe and decrypted Server.dat you can find this in the hacks/tools section.
01/02/2009 15:28 unknownone#17
carrots
01/02/2009 18:10 BoboDundo#18
So if I understand correctly, the *old* encryption/decryption of the key files are no longer used. This is the new way to encrypt/decrypt the packets. It may sound like a stupid question, but since I'm rewriting the proxy in a different language, I don't to waste time porting over old code when not needed :)

BTW, is there a test server up and running that we can test our proxy code against? That way I don't have to worry about getting my ip banned by TQ.

Thank you.

Quote:
Originally Posted by unknownone View Post
Update.

CipherContext is apparently broken for Blowfish. It uses the EVP part of openssl, and interprets the KeyLength of blowfish as 16 (which is correct - 16 in32s anyway). ManagedOpenSsl only allocates 16 bytes, so it breaks when trying to set the key for blowfish. Rather than all the messing about, add this Blowfish.cs file to the ManagedOpenSsl project and rebuild it. (Also, in Native.cs, change internal class Native to internal partial class Native)
01/02/2009 21:12 andyd123#19
Quote:
Originally Posted by BoboDundo View Post
So if I understand correctly, the *old* encryption/decryption of the key files are no longer used. This is the new way to encrypt/decrypt the packets. It may sound like a stupid question, but since I'm rewriting the proxy in a different language, I don't to waste time porting over old code when not needed :)

BTW, is there a test server up and running that we can test our proxy code against? That way I don't have to worry about getting my ip banned by TQ.

Thank you.
Could always try AcidCo :P
01/02/2009 21:13 tao4229#20
Quote:
Originally Posted by andyd123 View Post
Could always try AcidCo :P
They just/are upgrading to 5090 for ninjas :P
01/02/2009 21:38 BoboDundo#21
Thanks, will give it a whirl.

Quote:
Originally Posted by andyd123 View Post
Could always try AcidCo :P
01/03/2009 19:33 © Haydz#22
#Bump

Just wondering how people are getting on with this....

Haven't tried anything myself yet, and i can't this laptop isnt even capable of running C# without it freezing >.>

I will give it ago when i finish building my PC
01/04/2009 03:22 © Haydz#23
Quote:
Originally Posted by andyd123 View Post
Could always try AcidCo :P
Im Fairly Sure AcidCO Has Anti-Proxy Systems....


Sorry for duble bost men
01/04/2009 08:30 BoboDundo#24
I just want to get the Login code working properly. As long as they have the current login process that TQ is using, I should be good.

If not, I can always add the necessary code to Future's server code. I know that would work, but would it be the same implementation as TQ :)

Quote:
Originally Posted by © Haydz View Post
Im Fairly Sure AcidCO Has Anti-Proxy Systems....


Sorry for duble bost men
01/04/2009 18:11 Korvacs#25
I know a few people have been succesful with this for proxys, has anyone else had any luck?

Yesturday i chucked the entire ManagedOpenSSL.dll in the bin since i, for some time now have been having no luck with it from a server point of view, and to my knowledge only inf and Ultimation have been able to sort it out for a server and it had nothing to do with ManagedOpenSSL.dll :P, and that was a long time ago.

So, i cant imagine anyone here will be able to get a server working with it :P, but best of luck to you all, lol.
01/05/2009 04:32 BoboDundo#26
unknownone,

I'm ready for the next step. Please let us know how to proceed. Thank you.

Quote:
Originally Posted by unknownone View Post
Update.

CipherContext is apparently broken for Blowfish. It uses the EVP part of openssl, and interprets the KeyLength of blowfish as 16 (which is correct - 16 in32s anyway). ManagedOpenSsl only allocates 16 bytes, so it breaks when trying to set the key for blowfish. Rather than all the messing about, add this Blowfish.cs file to the ManagedOpenSsl project and rebuild it. (Also, in Native.cs, change internal class Native to internal partial class Native)

And the new crypt
Code:
    public class GameProtocolCryptographer
    {
        OpenSSL.Blowfish _blowfish;

        public GameProtocolCryptographer(string key)
        {
            _blowfish = new OpenSSL.Blowfish(OpenSSL.BlowfishAlgorithm.CFB64);
            _blowfish.SetKey(Encoding.ASCII.GetBytes(key));
        }

        void Decrypt(byte[] packet)
        {
            byte[] buffer = _blowfish.Decrypt(packet);
            System.Buffer.BlockCopy(buffer, 0, packet, 0, buffer.Length);
        }

        void Encrypt(byte[] packet)
        {
            byte[] buffer = _blowfish.Encrypt(packet);
            System.Buffer.BlockCopy(buffer, 0, packet, 0, buffer.Length);
        }

        public OpenSSL.Blowfish Blowfish
        {
            get { return _blowfish; }
        }
    }
01/05/2009 04:42 Ultimatum#27
Quote:
Originally Posted by Korvacs View Post
I know a few people have been succesful with this for proxys, has anyone else had any luck?

Yesturday i chucked the entire ManagedOpenSSL.dll in the bin since i, for some time now have been having no luck with it from a server point of view, and to my knowledge only inf and Ultimation have been able to sort it out for a server and it had nothing to do with ManagedOpenSSL.dll :P, and that was a long time ago.

So, i cant imagine anyone here will be able to get a server working with it :P, but best of luck to you all, lol.
agreed proxy yeh but when i try getting the client to connect to the server. I get disconnected at gameserver loggin x.x.
01/05/2009 15:52 unknownone#28
asparagus
01/05/2009 19:19 BoboDundo#29
No problem. I just wasn't sure if there were anymore changes that TQ had made that you were going to share. I don't have any problem with implementing the information you have provided and appreciate what you have done for the community.

Thank you for your help!!

Quote:
Originally Posted by unknownone View Post
You're obviously not, because there is no next step. I told you, I'm giving generic code that isn't specific to any server implementation, and it's already all in this thread. If you don't know what to do with it, try reading again several times over. It might help to understand how a Diffie-Hellman key exchange works (The key is only computable when both parties have the other's public key, and their own private key). I'm not doing any more work for you.
01/06/2009 03:24 Korvacs#30
Little updated:

Im now <-> this close.

Night all lol.