Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Anyone up for Domo

Status
Not open for further replies.
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
Here is what i have:
Code:
key (size =0F(from 0 to F))
  3F 12 56 44 9A BB 33 44 3F 12 56 44 9A BB 33 44  

MSG = msglength+header+PublicKey+z
length         =       message length(2 bytes)
header         =      still dont know(2 bytes)
Public key     =     comes from server(2 bytes)(you can make it 1 byte and rest is z)
z         =    1byte still dont know

Decrypt:
WORD x = Public key//THIS COMES FROM SERVER
for(int i = 0; i < msg.length; i++){
    x = x & 0x0F; 
    msg[i] =  msg[i] ^key[x];
    x=x+1;    
}
for example on connect it will send soomething like this:
Code:
The public key comes from the server:
05 00 FF FF 5C 2A B7
05 00 ->Packet length
FF FF ->Header
5C 2A ->Public Key(Big Endian(it is: 2A 5C))
B7 ->z

Client/Server will use the public key to Encrypt the messages that will be sent to the Server/Client.
Client/Server packet after:
Packet = Length + encrypted message

Every time Update your public key when receiving a message like this:
05 00 FF FF 5C 2A B7 (with FF FF header/opcode)
 
Last edited:
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
Wow, I am up if I can anyhow be a help.
Do you have unpacked antihackless client?

Edit:
Nevermind I take it back. Client has no gg or any of that stuff.
Writing fast packet sniffer :)

GHOST107 - Anyone up for Domo - RaGEZONE Forums


Still don't get the packet encryption function but working on it :)
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
Wow, I am up if I can anyhow be a help.
Do you have unpacked antihackless client?

Edit:
Nevermind I take it back. Client has no gg or any of that stuff.
Writing fast packet sniffer :)

GHOST107 - Anyone up for Domo - RaGEZONE Forums


Still don't get the packet encryption function but working on it :)

for example on connect it will send soomething like this:
Code:
05 00 FF FF 5C 2A B7 
05 00 ->Packet length
FF FF ->Header
5C 2A ->Public Key(Big Endian(it is:2A 5C))
B7    ->z
Client/Server will use the public key to Encrypt the messages that will be sent to the Server/Client.
Client/Server packet after:
Packet = Length + encrypted message
 
Last edited:
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
for example on connect it will send soomething like this:
Code:
05 00 FF FF 5C 2A B7 
05 00 ->Packet length
FF FF ->Header
5C 2A ->Public Key(Big Endian(it is:2A 5C))
B7    ->z
Client/Server will use the public key to Encrypt the messages that will be sent to the Server/Client.
Client/Server packet after:
Packet = Length + encrypted message

Oh I get it now. Gonna finish sniffer once im home.
 
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
Code:
        private byte[] cryptTable = new byte[15] { 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44, 0x3F, 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44 };

        private byte[] Crypto(byte[] data, ushort key)
        {
            byte[] decryptedData = new byte[data.Length];
            ushort keyIndex = key;

            for (int i = 0; i < data.Length - 1; i++)
            {
                keyIndex &= (ushort)(cryptTable.Length);
                decryptedData[i] = (byte)(data[i] ^ cryptTable[keyIndex]);
                keyIndex++;
            }
            return decryptedData;
        }
Having problem with crypt method cause of my stupidity.

First packet from server is 7 bytes, first 2 is data length, next 2 is header which is 0xFFFF, next 2 is public key, and last byte is z

To get uncrypted byte I need to xor original byte with key from table which index is cryptIndex.

If I undernstand right,
Code:
cryptIndex = (short)(cryptIndex & (short)(0x0F));
keeps the key index within the range of crypt table for obvious reasons.

What am missing then? Method runs but decrypted packet doesn't contain any strings that are used in login.

:?::?::?:

Full source: http://forum.ragezone.com/attachment.php?attachmentid=92859&stc=1&d=1317856935
Install winpcap and include two ddl files (they are in DomoSniff folder) to references.
 
Last edited:
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
Code:
        private byte[] cryptTable = new byte[15] { 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44, 0x3F, 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44 };

        private byte[] Crypto(byte[] data, ushort key)
        {
            byte[] decryptedData = new byte[data.Length];
            ushort keyIndex = key;

            for (int i = 0; i < data.Length - 1; i++)
            {
                keyIndex &= (ushort)(cryptTable.Length);
                decryptedData[i] = (byte)(data[i] ^ cryptTable[keyIndex]);
                keyIndex++;
            }
            return decryptedData;
        }
Having problem with crypt method cause of my stupidity.

First packet from server is 7 bytes, first 2 is data length, next 2 is header which is 0xFFFF, next 2 is public key, and last byte is z

To get uncrypted byte I need to xor original byte with key from table which index is cryptIndex.

If I undernstand right,
Code:
cryptIndex = (short)(cryptIndex & (short)(0x0F));
keeps the key index within the range of crypt table for obvious reasons.

What am missing then? Method runs but decrypted packet doesn't contain any strings that are used in login.

:?::?::?:

Full source: http://forum.ragezone.com/attachment.php?attachmentid=92859&stc=1&d=1317856935
Install winpcap and include two ddl files (they are in DomoSniff folder) to references.
Sorry posted the wrong cryptTable
3F 12 56 44 9A BB 33 44 3F 12 56 44 9A BB 33 44

keyIndex for the example above(is in big endian 05 00 FF FF 5C 2A B7 )2A 5C where 5C will be needed the most.
 
Newbie Spellweaver
Joined
Nov 15, 2010
Messages
36
Reaction score
2
you guys have my full support. i don't know much about this stuff but if i can help with anything, let me know :):
 
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
Alright here is working encrypt method if anyone is interested
Code:
        private byte[] cryptTable = new byte[16] { 0x3F, 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44, 0x3F, 0x12, 0x56, 0x44, 0x9A, 0xBB, 0x33, 0x44 };
        private byte[] Crypto(byte[] data, ushort key)
        {
            byte[] decryptedData = new byte[data.Length];
            ushort keyIndex = key;

            for (int i = 0; i < data.Length; i++)
            {
                keyIndex &= 0x0F;
                decryptedData[i] = (byte)(data[i] ^ cryptTable[keyIndex]);
                keyIndex++;
            }
            return decryptedData;
        }

Now i'm off to work.
 
Junior Spellweaver
Joined
Oct 27, 2008
Messages
165
Reaction score
89
Had problems with my packet sniffer since winpcap, does not have filter support for PPPoE connections but fixed it now.
 
Status
Not open for further replies.
Back
Top