• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

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