Сейчас на форуме: Slinger (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› расшифровка пакета данных |
Посл.ответ | Сообщение |
|
Создано: 11 ноября 2006 05:35 · Личное сообщение · #1 Привет всем ![]() задача не из легких,но хотелось бы знать мнение экспертов в этом деле... возникла проблема с расшифровкой 1 пакета, который содержит логин пароль и еще 2 переменные что мне известно : 1) что первые 2 байта не шифруются, 2) имеется такой же пакет в расшифрованом виде 3) при изменении логина или пароля(по моему наблюдению)не затронула изменения всего остального пакета 4) если логин был aaaa , что в шифрованом виде 25 81 25 C9,то при изменении скажем одной буквы на b изменения в зашифрованом пакете будут такие - логину abaa будет соответствовать шифр 25 82 25 C9 приведу пример пакетов и логин-пароль соответствено каждому логин aaaa пароль aaaa 64 00 EB 78 7F|99 A9|25 81 25 C9|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|75 B1 55 A9 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин bbbb пароль bbbb 64 00 99 11 64|99 A9|26 82 26 CA|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|76 B2 56 AA 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин cccc пароль cccc 64 00 EF 0B 08|99 A9|27 83 27 CB|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|77 B3 57 AB 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин cccc пароль bbbb 64 00 4A C8 6E|99 A9|27 83 27 CB|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|76 B2 56 AA 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин aaaa пароль bbbb 64 00 6F 4F CC|99 A9|25 81 25 C9|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|76 B2 56 AA 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин abaa пароль bbbb 64 00 E1 0D 03|99 A9|25 82 25 C9|A4 B8 89 3A 19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|76 B2 56 AA 74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A логин aaaaaaaa пароль aaaaaaaa 64 00 65 F5 7C|99 A9|25 81 25 C9 C5 29 45 E1 14 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E075 B1 55 A9 15 E9 55 51 84 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A жирным выделил расположения логина и пароля первым в пакете идет логин следом пароль также приведу пример расшифрованого пакета 64 00 5A 00 00 00 61 61 61 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 61 61 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 рассмотрим ниже [64 00] постоянные [5A 00 ] 1 или 2 байта переменная точно не известно [00 00 ] [61 61 61 61 ] логин [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ] [61 61 61 61 ] пароль [00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ] [00 19 ]1 или 2 байта переменная точно не известно важно любое мнение, как оно было шифровано или каким образом это можно расшифровать как не нарушив пакет встаить туда свои логин и пароль произвольной длинны заранее спасибо. P.S если потребуется доп информация для исследования пакетов пишите ,вышлю что знаю с уважением LM Group. ![]() |
|
Создано: 11 ноября 2006 07:02 · Личное сообщение · #2 |
|
Создано: 11 ноября 2006 07:18 · Личное сообщение · #3 для каждого байта сдвиг свои получается 25 81 25 C9 a a a a вот 1байт 0х61-0х25 = 0х3C 2байт 0х61-0х81 = 0хFFFFE0 & 0xFF = 0xE0 3байт 0х61-0х25 = 0х3C 4байт 0х61-0хC9 = 0xFFFF98 & 0xFF = 0x98 ладно алфавит можно перебрать для себя весь таким образом, но каким образом понять какая тут закономерность в этих сдвигах пакет почти весь был в 00 00 00 ... и везде по разному сместило а вы говорите ("...а значения константы сдвига...") как она может быть константой? или я чего-то непонимаю к сожалению как программа формирует не проще ![]() ![]() |
|
Создано: 11 ноября 2006 07:22 · Личное сообщение · #4 |
|
Создано: 11 ноября 2006 07:35 · Личное сообщение · #5 |
|
Создано: 11 ноября 2006 07:44 · Личное сообщение · #6 |
|
Создано: 11 ноября 2006 11:48 · Поправил: n1kto · Личное сообщение · #7 дай данные в виде бинарника, в тексте смотреть неудобно. похоже на простое сложение(!) с гаммой. надо исходник смотреть как гамма формируется. (типа примитивный шифр. Виржинера(?) кажется, каждая буква сдвигается по символу пароля). точнее не сказать, так как неизвестно, есть ли связь в гамме с открытым (или закрытым) текстом. А для данного конкретного пакета - скорее всего надо просто из зашифрованного пакета вычесть побайтово расшифрованный и получить кусок гаммы. потом к этому куску побайтово прибавить нужную информацию. по крайней мере, так навскидку. зы. вместо сложения-вычитания может быть ксор. проверять лень ![]() ![]() |
|
Создано: 11 ноября 2006 21:39 · Личное сообщение · #8 есть две программы 1 которая формирует данный пакет 2 которая защищяет первую программу заставляя ее криптовать пакеты 1 программа вест 1 Гб с библиотеками и тд а та программа защиты 200 кб без программмы защиты программа 1 формирует нормальные пакеты есть предположение что просто программа защиты подминяет функции первой программы 1 умный человек говорил что защита ("...запускает в режиме отладчика и меняет регистры в рантайме...") ![]() |
|
Создано: 11 ноября 2006 21:45 · Личное сообщение · #9 программа защиты в файле,(уже распокована) интересно было бы услышать ваше мнение о ее действиях ![]() ![]() |
|
Создано: 12 ноября 2006 01:51 · Поправил: Crawler · Личное сообщение · #10 Да тут элементарный ксор, ламерство полнейшее Вот что выходит: ксор по константной строке "DàD¨¤H$€" (ну, и так далее, для точности нужен длинный пасс) То есть в НЕХ это будет выглядеть так: 68 224 68 168 164 72 36 128 Криптографию прикладную читайте. А то - "сдвиг по таблице..." ![]() ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. ![]() |
|
Создано: 12 ноября 2006 08:58 · Личное сообщение · #11 привет Crawler ![]() сколько не бился головой Ап стену и не только ![]() тоесть вы хотите сказать сдесь имеется ПОСТОЯННАЯ матрица для расшифровки данного пакета ? но дело в том что мне надо какимто образом сформировать свои пакет имея логин и пароль в данном пакете я установил логин с 9 букв а пароль с 8 64 00 48 A4 CF 99 A9 30 85 37 DC C1 3A 15 B2 27 B0 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0 60 B5 47 BC 11 FA 5B 5B 84 70 69 32 AD 5F 5A C0 F5 AD 0C 41 7E 8A E7 FC каким образом мне расшифровать данный пакет. Если вас не затруднит можно показать? с уважением codenet ![]() ![]() |
|
Создано: 12 ноября 2006 09:02 · Личное сообщение · #12 |
|
Создано: 12 ноября 2006 09:08 · Личное сообщение · #13 |
|
Создано: 13 ноября 2006 00:10 · Личное сообщение · #14 codenet пишет: в данном пакете я установил логин с 9 букв а пароль с 8 64 00 48 A4 CF 99 A9 30 85 37 DC C1 3A 15 B2 27 B0 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0 60 B5 47 BC 11 FA 5B 5B 84 70 69 32 AD 5F 5A C0 F5 AD 0C 41 7E 8A E7 FC каким образом мне расшифровать данный пакет. Если вас не затруднит можно показать? типа на дельфи, с +/- program prj1; {$APPTYPE CONSOLE} uses SysUtils; type aob = array of byte; const spck1 : String = '64 00 EB 78 7F 99 A9 25 81 25 C9 A4 B8 89 3A '+ '19 40 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0|75 B1 55 A9 '+ '74 78 99 8A 89 70 69 32 AD 8B 94 CB 59 AD 0C 41 7E 8A E7 4A)'; sdec1 : String = '64 00 5A 00 00 00 61 61 61 61 00 00 00 00 00 '+ '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 61 61 61 00 '+ '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19'; spck2 : String = '64 00 48 A4 CF 99 A9 30 85 37 DC C1 3A 15 B2 '+ '27 B0 19 72 79 F8 59 EA A9 F0 09 F2 09 18 E9 E0 60 B5 47 BC '+ '11 FA 5B 5B 84 70 69 32 AD 5F 5A C0 F5 AD 0C 41 7E 8A E7 FC'; procedure dmp(x: aob); var i: Integer; c:char; begin for i := low(x) to high(x) do begin if x[i]>31 then c := chr(x[i]) else c := '.'; write(format('%.2x %s | ',[x[i],c])); if (i mod 10) = 9 then writeln; end; if (i mod 10) <> 9 then writeln; end; procedure get_pck(s: String;var x: aob); var i,k: Integer; begin i := 1; k := 0; SetLength(x,0); while i<=length(s) do begin SetLength(x,k+1); x[k] := strtoint('$'+copy(s,i,2)); inc(i,3); inc(k); end; end; var pck1,pck2,dec1,dec2,gamma: aob; i: Integer; begin get_pck(spck1,pck1); get_pck(spck2,pck2); get_pck(sdec1,dec1); SetLength(gamma,length(dec1)); // for i := low(gamma) to high(gamma) do gamma[i] := pck1[i] xor dec1[i]; for i := low(gamma) to high(gamma) do gamma[i] := pck1[i] - dec1[i]; writeln('gamma:'); dmp(gamma); writeln('crypted:'); dmp(pck2); SetLength(dec2,length(gamma)); // for i := low(gamma) to high(gamma) do dec2[i] := pck2[i] xor gamma[i]; for i := low(gamma) to high(gamma) do dec2[i] := pck2[i] - gamma[i]; writeln('decrypted:'); dmp(dec2); readln; end. если надо xor, то надо соответствующие строки раскомментировать/закомментировать ![]() |
|
Создано: 13 ноября 2006 02:34 · Личное сообщение · #15 |
![]() |
eXeL@B —› Основной форум —› расшифровка пакета данных |
Эта тема закрыта. Ответы больше не принимаются. |