is there any guide

01/25/2011 09:03 MixedCoder#1
is there anyguid here about decrypting the information from the client

like AccountID and Password?!
01/25/2011 11:43 Lateralus#2
Quote:
Originally Posted by MixedCoder View Post
is there anyguid here about decrypting the information from the client

like AccountID and Password?!
If I remember right, the account ID isn't decrypted. The password encryption routine can be found by reversing the client. The password decryption routine can be found by either reversing the binaries, or by inversing the encryption routine found in the client. If you want to use it in a higher level language, translate it from x86 to a higher level language.

I've never done it (yet), but that's how it's done.
01/25/2011 15:34 pro4never#3
Also the entire encryption is already public for current and past patches.... No need to reverse this stuff form scratch.


Take a look at immune's source. It has the liberate cryptography dll already in the project + example of how to use it.
01/25/2011 23:14 Lateralus#4
Quote:
Originally Posted by pro4never View Post
Also the entire encryption is already public for current and past patches.... No need to reverse this stuff form scratch.


Take a look at immune's source. It has the liberate cryptography dll already in the project + example of how to use it.
He, like me, may plan to reverse it to fully understand where and how it's done in the client in order to change the encryption.
01/26/2011 00:40 { Angelius }#5
PHP Code:

                    string AccountName 
"";
                    
string password "";
                    
string ServerName "";
                    if (
Buffer.Length >= 276)
                    {
                        for (
int i 40x114i++)
                        {
                            if (
>= 0x14 && 0xf9)
                            {
                                if (
Buffer[i] != 0x00)
                                    
password += (Convert.ToString(Buffer[i], 16)).PadLeft(2'0');
                            }
                            if (
0x14)
                                if (
Buffer[i] != 0x00)
                                    
AccountName += Convert.ToChar(Buffer[i]);
                            if (
0xfa)
                                if (
Buffer[i] != 0x00)
                                    
ServerName += Convert.ToChar(Buffer[i]);
                        }
                    }
                    
Console.WriteLine("[LoginServer] " AccountName " logging in to " ServerName); 
i think thats what you need out of immune's source
01/26/2011 00:51 FuriousFang#6
Code:
Username = Encoding.ASCII.GetString(BR.ReadBytes(16)).Trim('\0');
BR.ReadBytes(112);
Password = Encoding.ASCII.GetString(BR.ReadBytes(16));
BR.ReadBytes(112);
Server = Encoding.ASCII.GetString(BR.ReadBytes(16)).Trim('\0');
The length depends on what patch you're doing. It's one of two. Here's one that you can do if the length isn't 52. If it is 52, just look into CoFuture and you'll see an example.
Look into Impulse's source. Authentication packet.
=] Good luck.
01/26/2011 02:21 MixedCoder#7
Quote:
Originally Posted by { Angelius } View Post
PHP Code:

                    string AccountName 
"";
                    
string password "";
                    
string ServerName "";
                    if (
Buffer.Length >= 276)
                    {
                        for (
int i 40x114i++)
                        {
                            if (
>= 0x14 && 0xf9)
                            {
                                if (
Buffer[i] != 0x00)
                                    
password += (Convert.ToString(Buffer[i], 16)).PadLeft(2'0');
                            }
                            if (
0x14)
                                if (
Buffer[i] != 0x00)
                                    
AccountName += Convert.ToChar(Buffer[i]);
                            if (
0xfa)
                                if (
Buffer[i] != 0x00)
                                    
ServerName += Convert.ToChar(Buffer[i]);
                        }
                    }
                    
Console.WriteLine("[LoginServer] " AccountName " logging in to " ServerName); 
i think thats what you need out of immune's source
in c++ it's not working :)