Вообщем первым шагом устанавливается tcp соединение с 85.192.47.44 Destination port: 1973 Отправляем пакет с пустым содержанием получаем ответ вида: Code: 00 1F-80 00 00 00 03 AC 00 15 ..?....¬.. 5B 30 32 2D 31 38 20 32-31 3A 31 30 3A 34 38 3A [02-18 21:10:48: 34 36 31 5D 00 461]. на этот ответ клиет отправляет Code: 00 54-80 00 00 00 01 AF 00 07 .T?....¯.. 6E 6F 62 69 6C 6C 00 00-09 64 61 74 61 33 30 30 nobill...data300 31 00 00 18 B1 DD 38 E6-43 6B 90 9B 27 EF CA 4C 1...±Ý8æCk�›'ïÊL 98 29 B4 09 47 57 F6 33-D5 16 0E 24 00 18 30 30 ˜)´.GWö3Õ..$..00 2D 44 30 2D 44 37 2D 30-46 2D 36 41 2D 34 33 2D -D0-D7-0F-6A-43- 30 30 2D 30 30 00 03 8F-00 88 00-00..�.ˆ т.е идет nobill...ИМЯ......ХЭШ хэш похоже идет 24 байтный, меняется при изменении логина, пароля, даты. вок кусок процедуры из клиента: Code: .text:0041C7D9 ; sub_41BF40+6DAj ... .text:0041C7D9 68 B8+ push offset aNetlogin ; "[B]netlogin[/B]" .text:0041C7DE 8D 45+ lea eax, [ebp+var_4C] .text:0041C7E1 50 push eax .text:0041C7E2 E8 39+ call sub_404A20 .text:0041C7E7 83 C4+ add esp, 8 .text:0041C7EA 84 C0 test al, al .text:0041C7EC 74 2F jz short loc_41C81D .text:0041C7EE B8 10+ mov eax, 10h .text:0041C7F3 39 45+ cmp [ebp+var_6C], eax .text:0041C7F6 8B 4D+ mov ecx, [ebp+var_80] .text:0041C7F9 73 03 jnb short loc_41C7FE .text:0041C7FB 8D 4D+ lea ecx, [ebp+var_80] .text:0041C7FE .text:0041C7FE loc_41C7FE: ; CODE XREF: sub_41BF40+8B9j .text:0041C7FE 39 45+ cmp [ebp+var_18], eax .text:0041C801 8B 45+ mov eax, dword ptr [ebp+var_2C] .text:0041C804 73 03 jnb short loc_41C809 .text:0041C806 8D 45+ lea eax, [ebp+var_2C] .text:0041C809 .text:0041C809 loc_41C809: ; CODE XREF: sub_41BF40+8C4j .text:0041C809 68 B0+ push offset aNobill ; "[B]nobill[/B]" .text:0041C80E 51 push ecx .text:0041C80F 50 push eax .text:0041C810 E8 AB+ call sub_5077C0 .text:0041C815 83 C4+ add esp, 0Ch .text:0041C818 E9 CE+ jmp loc_41F3EB .text:005077C0 sub_5077C0 proc near ; CODE XREF: sub_41BF40+8D0p .text:005077C0 ; sub_4C4D50+5Ep ... .text:005077C0 .text:005077C0 arg_0 = dword ptr 4 .text:005077C0 arg_4 = dword ptr 8 .text:005077C0 arg_8 = dword ptr 0Ch .text:005077C0 .text:005077C0 8B 44+ mov eax, [esp+arg_8] .text:005077C4 8B 4C+ mov ecx, [esp+arg_4] .text:005077C8 8B 54+ mov edx, [esp+arg_0] .text:005077CC 50 push eax .text:005077CD A1 08+ mov eax, dword_6C2508 .text:005077D2 51 push ecx .text:005077D3 8B 88+ mov ecx, [eax+324h] .text:005077D9 52 push edx .text:005077DA E8 C1+ call sub_51A5A0 .text:005077DF C3 retn .text:005077DF sub_5077C0 endp .text:0051A5A0 sub_51A5A0 proc near ; CODE XREF: sub_5077C0+1Ap .text:0051A5A0 .text:0051A5A0 hostshort = word ptr -4E0h .text:0051A5A0 var_4DC = dword ptr -4DCh .text:0051A5A0 var_4A4 = dword ptr -4A4h .text:0051A5A0 var_4A0 = dword ptr -4A0h .text:0051A5A0 var_490 = dword ptr -490h .text:0051A5A0 var_48C = dword ptr -48Ch .text:0051A5A0 var_488 = dword ptr -488h .text:0051A5A0 var_410 = dword ptr -410h .text:0051A5A0 var_10 = dword ptr -10h .text:0051A5A0 var_C = dword ptr -0Ch .text:0051A5A0 var_4 = dword ptr -4 .text:0051A5A0 arg_0 = dword ptr 4 .text:0051A5A0 arg_4 = dword ptr 8 .text:0051A5A0 arg_8 = dword ptr 0Ch .text:0051A5A0 .text:0051A5A0 6A FF push 0FFFFFFFFh .text:0051A5A2 68 CC+ push offset loc_5F6FCC .text:0051A5A7 64 A1+ mov eax, large fs:0 .text:0051A5AD 50 push eax .text:0051A5AE 64 89+ mov large fs:0, esp .text:0051A5B5 81 EC+ sub esp, 4D4h .text:0051A5BB A1 44+ mov eax, dword_65F044 .text:0051A5C0 8B 15+ mov edx, dword_6C2508 .text:0051A5C6 55 push ebp .text:0051A5C7 56 push esi .text:0051A5C8 57 push edi .text:0051A5C9 8B BC+ mov edi, [esp+4ECh+arg_0] .text:0051A5D0 8B E9 mov ebp, ecx .text:0051A5D2 89 84+ mov [esp+4ECh+var_10], eax .text:0051A5D9 8B CF mov ecx, edi .text:0051A5DB 81 C2+ add edx, 3ACh .text:0051A5E1 .text:0051A5E1 loc_51A5E1: ; CODE XREF: sub_51A5A0+49j .text:0051A5E1 8A 01 mov al, [ecx] .text:0051A5E3 41 inc ecx .text:0051A5E4 88 02 mov [edx], al .text:0051A5E6 42 inc edx .text:0051A5E7 84 C0 test al, al .text:0051A5E9 75 F6 jnz short loc_51A5E1 .text:0051A5EB 8B B4+ mov esi, [esp+4ECh+arg_4] .text:0051A5F2 8B 15+ mov edx, dword_6C2508 .text:0051A5F8 8B CE mov ecx, esi .text:0051A5FA 81 C2+ add edx, 410h .text:0051A600 .text:0051A600 loc_51A600: ; CODE XREF: sub_51A5A0+68j .text:0051A600 8A 01 mov al, [ecx] .text:0051A602 41 inc ecx .text:0051A603 88 02 mov [edx], al .text:0051A605 42 inc edx .text:0051A606 84 C0 test al, al .text:0051A608 75 F6 jnz short loc_51A600 .text:0051A60A 56 push esi ; char * .text:0051A60B 57 push edi ; int имеется и клиентская часть и серверная часть (без исходников конечно), вот всё пытаюсь самостоятельно сгенерировать этот ХЭШ но всё никак не могу найти где он генерируется в клиете, если кто может подскажите чем можите где дальше копать
спасибо действительно помогает хоть теперь примерно знаю что используется дальше буду пробовать в отладчике копать Code: ADLER32 :: 00147F3A :: 00547F3A The reference is above. BASE64 table :: 00214608 :: 00614608 Referenced at 00575DD5 Referenced at 00575E01 Referenced at 00575E2E Referenced at 00575E4C Referenced at 00575E8A Referenced at 00575ECA Referenced at 00575EF4 CRC32 :: 00212A38 :: 00612A38 Referenced at 00540AD2 Referenced at 00540AE4 Referenced at 00540AF9 Referenced at 00540B0E Referenced at 00540B23 Referenced at 00540B38 Referenced at 00540B4D Referenced at 00540B62 Referenced at 00540B86 DES [pbox] [char] :: 002147D0 :: 006147D0 Referenced at 00576D12 DES [pbox] [char] :: 00214B28 :: 00614B28 Referenced at 00578384 DES [pbox] [char] :: 00214E70 :: 00614E70 Referenced at 0057889A DES [sbox] :: 002569E0 :: 006569E0 Referenced at 004E4F42 Referenced at 004E4FD4 MD5 :: 0018552E :: 0058552E The reference is above. SHA1 [Compress] :: 001762D4 :: 005762D4 The reference is above. SHA1 [Compress] :: 00177A4A :: 00577A4A The reference is above. ZLIB deflate [long] :: 00213310 :: 00613310 Referenced at 005492FD
в серверной части также используетвся Code: BASE64 table :: 000549B8 :: 004549B8 DES [pbox] [char] :: 00054B80 :: 00454B80 DES [pbox] [char] :: 00054ED8 :: 00454ED8 DES [pbox] [char] :: 00055220 :: 00455220 MD5 :: 0003896E :: 0043896E SHA1 [Compress] :: 00031F44 :: 00431F44 SHA1 [Compress] :: 000336BA :: 004336BA подскажите может кто встречал DES [pbox] [char] "DES key permutation (PBox) (1-based)" что это
Дес - алгоритм хэширования, кроме бейс64(ты его сразу узнаешь по разного регистра буквам и иногда по знакам равно на конце) в проге нет. Дес строго 12 символов в длину. 12 + 12 = 24 Скорей всего, как и в практически любом другом протоколе, используется бинарное пакование данных. Ищи его с помощью отладчика. Бряк на WM_COMMAND в WndProc(это по нажатию кнопки если).
DES - data encryption standart - как раз таки алгоритм шифрования. А хэширование - вырожденные случай шифрования, просто всесто 56-битного ключа берется по 7 бит из первых 8 байт шифруемого сообщения, так получаем хэширование вместо шифрования.
pbox - матрица изменения ключа. 56битный ключ - проходит процедуру расширения до 64 бит. после этого кажется перед каждым циклом проходит пермутацию, на основе pbox, это матрица с зараниее известными значениям. pbox - обычно закладываются 1 раз в самом коде.
1. geezer.code все верно сказал 2. data3000. советую 2 способа, первый брякнуться не на коде самой отсылки, а до него, поставив бряку, на пример на винсоковский connect при установке соединения и там смотришь кто куда и за4ем коннектится. а немного далее по коду будет функи генерации пакетов, крипто и все 4то тебе нужно; второй, если не выйдет с первым, в том коде который ты привел выше, брякаешься, жмешь альт+к в отльке, смотришь откуда пришли по стеку, там дизасмишь, перезапускаешь прогу уже с бряками выше в надфункциях и исследуешь пока не найдешь код перекодирования вменяемых данных в шифрованые
а я бы брякнулся перед отправкой этого хеша поставил на него хардваре брекпойнт на акес и рестарт) он скорее всего копироваца будет много раз но так можно и найти место генерации.