Показать сообщение отдельно
Старый 19.11.2014, 17:09   #11
Новичок
 
Регистрация: 12.11.2014
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
r00tk1d пока неопределено
По умолчанию

Люди помогите!!! (( никак не получается с этим пакетом Init... Вроде бы всё верно делаю, но клиент Interlude никак не реагирует на такой пакет... А Ertheia вообще критует..

PHP код:
static void XorInitPacket(unsigned charrawint sizeint key)
{
    
int i 0;
    
int key2 key;
    for(
6size 4i+=4)
    {
        
int temp = (*(raw 3) << 24) & 0xFF000000 | (*(raw 2) << 16) & 0xFF0000 | (*(raw 1) << 8) & 0xFF00 | *(raw i) & 0xFF;
        
key2 += temp;
        
int temp2 key2 temp;
        
raw[i] = temp2 0xFF;
        
raw[1] = temp2 >> 0xFF;
        
raw[2] = temp2 >> 16 0xFF;
        
raw[3] = temp2 >> 24 0xFF;
    }
    
raw[i] = key2 0xFF;
    
raw[1] = key2 >> 0xFF;
    
raw[2] = key2 >> 16 0xFF;
    
raw[3] = key2 >> 24 0xFF;
};

void CUserSocket::OnCreate()
{
    
m_pAuthUser = new CAuthUser;
    
m_pAuthUser->Init();

    
srand(time(NULL));

    *(
int*)(m_bwKey) = rand();
    *(
int*)(m_bwKey 4) = rand();
    *(
int*)(m_bwKey 8) = rand();
    *(
int*)(m_bwKey 0xc) = rand();

    
m_pCrypt = new CBlowFish(g_bfStaticKeysizeof(g_bfStaticKey));

    
CIOBufferpBuffer CIOBuffer::Alloc();

    
int nLen Assemble(pBuffer->m_Buffer 2IOBUFFER_SIZE"cddbddddbc",
        
0,
        
1234567,    // Session ID
        
0x0000c621,    // protocol version
        
sizeof(m_pAuthUser->m_RSA),
        &
m_pAuthUser->m_RSA,    // public key
        
0x29DD954E,
        
0x77C39CFC,
        
0x97ADB620,
        
0x07BDE0F7,
        
sizeof(m_bwKey),
        
m_bwKey,    // new BlowFish Key
        
0
    
);

    
nLen += 8;    // xor key
    
nLen = (nLen 7) & 0xfffffff8;    // aligment for blowfish

    
XorInitPacket(pBuffer->m_BuffernLenrand());

    
m_pCrypt->Encrypt(pBuffer->m_Buffer 2nLen);    // blowfish encrypt
    
nLen+=2;    // packet total size

    
Read(0);    // WSARead() IOCP early call

    
*(short*)(pBuffer->m_Buffer) = nLen;    // set first bytes to length of packet
    
pBuffer->m_dwSize nLen    // for WSASend
    
Write(pBuffer);    // Write!

    
delete m_pCrypt;    // change blowfish key
    
m_pCrypt = new CBlowFish(m_bwKeysizeof(m_bwKey));

Улетает клиенту вот такое
Код:
00000000: ba 00 e7 22 01 4f 2b 42 68 b1 b9 06 e8 a2 ac a4 
00000010: 17 97 94 2f 4b da 02 02 36 bb 65 02 33 77 fb b4 
00000020: c7 64 23 cf eb b1 c2 fb 97 11 d3 85 19 1e 42 5e 
00000030: 46 f8 fc aa 4f 34 eb cc 39 b0 02 98 fd e0 21 9d 
00000040: dc 5c d3 dd e3 b5 4d fa 38 46 6f 02 d4 4c 9d ce 
00000050: e8 46 9b 88 1b 01 4f cc 69 52 7d ae b5 5e e1 92 
00000060: 3a 6e 92 43 7a c3 82 17 06 2e d2 27 53 1c 25 98 
00000070: 53 ca 27 56 60 e3 9f 14 f6 54 9f bf 9f 48 c8 ed 
00000080: d8 28 e9 93 96 d3 16 7a c9 81 b4 52 c2 d9 8b dd 
00000090: 42 3f 59 cf 1a 11 a3 fa 0c 9b 46 94 e3 0f 91 fb 
000000a0: a7 9f 0a f0 42 ec f2 07 66 ae 86 10 6d 62 cf 12 
000000b0: 01 3b e2 0b ec 99 3d 8b 23 b0
оно же до ксора и шифрования (но с ксор ключом в конце пакета)

Код:
00000000: ba 00 00 87 d6 12 00 21 c6 00 00 6e 12 32 ab a3 
00000010: 1a ee 4c eb 97 09 25 f8 e5 25 ad db d7 80 e1 20 
00000020: 4c 72 d7 1d b4 fb fb c0 7e e9 3d d0 b8 87 3f b1 
00000030: 1c fe ad 5d 17 08 2c 18 9b 26 ec 61 6e 32 95 73 
00000040: 95 7e 37 3d 03 d4 14 be 43 b8 92 3b b2 d1 76 e3 
00000050: a3 0e 87 7d a5 ee ed 69 56 59 57 5f ee c6 17 35 
00000060: 81 10 f7 43 74 32 03 c4 46 c9 e3 a5 d6 29 a6 a6 
00000070: a5 3d c8 e6 af dc 35 19 43 21 0a 2e d8 12 a7 6c 
00000080: 11 d1 a5 ab b1 d6 85 44 72 fb 93 4e 95 dd 29 fc 
00000090: 9c c3 77 20 b6 ad 97 f7 e0 bd 07 27 1d 6e 6e e0 
000000a0: 09 a9 14 24 7c a1 10 0f 0b 06 6a 00 cc cc cc cc 
000000b0: cc cc cc cc cc cc d2 ab 71 63
что у меня может быть не так? Нигде не могу найти точного примера ксора инит пакета

Последний раз редактировалось r00tk1d, 19.11.2014 в 17:30.
r00tk1d вне форума   Ответить с цитированием