Показать сообщение отдельно
Старый 01.06.2008, 08:53   #9
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
По умолчанию

привет всем,
в общем на серв поставили с недавних пор штфрацию, попробывал разобратся но есть пару вопросиков которые не могу решить.
на основе инфы с данной ветки, с трафиком от серва вроде все ок, здесь вопросов нет (вот процедурка на всякий случай, ключик выдерал из ответа сервера на юзанье скила в сидячем положении, как было предложено выше):
Код:
var
  i,k,j: integer;
begin
  i:=size;
  for j:=0 to i div 8 do
  begin
      for k:=7 downto 0 do
      begin
            pck[k+(j*8)]:=pck[k+(j*8)] xor key[k];
// вот тут на серве дополнительное шифрование
      if j>=8 then
            pck[k+(j*8)]:=pck[k+(j*8)] xor key[k] xor key[k];
      end;
  end;
end.
но вот в отправке пакетов от клиента, немогу въехать как меняются первые 2 байта ключа.

юзал сидя скилл релакс в разные промежутки времени
обход смены хор ключа - вкл
не дешифровать трафик - выкл

Код:
46 44 07 00 E4 5F DC 5E 69 A6
B6 44 07 00 E4 5F DC 5E 99 A6
84 44 07 00 E4 5F DC 5E AB A6
B8 44 07 00 E4 5F DC 5E 97 A6 
D4 44 07 00 E4 5F DC 5E FB A6
C0 44 07 00 E4 5F DC 5E EF A6
C4 47 07 00 E4 5F DC 5E EB A5
D8 47 07 00 E4 5F DC 5E F7 A5
B4 47 07 00 E4 5F DC 5E 9B A5
80 47 07 00 E4 5F DC 5E AF A5
B6 47 07 00 E4 5F DC 5E 99 A5
46 48 07 00 E4 5F DC 5E 69 AA
98 49 07 00 E4 5F DC 5E B7 AB
37 4C 07 00 E4 5F DC 5E 18 AE
27 4C 07 00 E4 5F DC 5E 08 AE
57 4C 07 00 E4 5F DC 5E 78 AE 
37 4C 07 00 E4 5F DC 5E 18 AE
после прогонки через:

Код:
var
  k,j: integer;
begin
  key[0]:=pck[8];
  key[1]:=pck[9];
  key[2]:=pck[2];
  key[3]:=pck[3];
  key[4]:=pck[4];
  key[5]:=pck[5];
  key[6]:=pck[6];
  key[7]:=pck[7];

  for j:=0 to size div 8 do
  begin
      for k:=7 downto 0 do
      begin
            pck[k+(j*8)]:=pck[k+(j*8)] xor key[k];
// этот кусок наверно не нужен. еще не проверял. но и так работает
      if j>=8 then
            pck[k+(j*8)]:=pck[k+(j*8)] xor key[k] xor key[k];
      end;
  end;
end.
получаем:

Код:
2F E2 00 00 00 00 00 00 00 00 ; 69 A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 99 A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; AB A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 97 A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; FB A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; EF A6 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; EB A5 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; F7 A5 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 9B A5 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; AF A5 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 99 A5 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 69 AA 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; B7 AB 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 18 AE 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 08 AE 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 78 AE 07 00 E4 5F DC 5E ; 10
2F E2 00 00 00 00 00 00 00 00 ; 18 AE 07 00 E4 5F DC 5E ; 10
с 3 по 8 байты ключа вроде бы константы.

может какие нибудь идейки есть? в какую сторону копать?

ко времени может быть привязка? хотя как сервер может знать об времени отправления пакета, или в заголовке пакета есть время отправки?

зыы: при включенной опции "не дешифровать траффик" - на глаз цикличность и какие либо неизменные части не наблюдаются.
зыыы: в шифровани и дешифровке "не в зуб ногой" всю инфу подчерпнул из данной ветки.

Добавлено через 12 часов 57 минут
гыг, наступаю на одни и тежи грабли.
вот тежи пакеты (сидя юзаю релакс) в незашифрованном виде (сохранил из пх в текстовый файл. вроде как сохраняет не в шифрованном виде, убрав вкрапления)
Код:
039C54BE5329F5E03F030025
03460CC50974F5E03F030025
032EC146588FF5E03F030025
03F0C3CBBFBEF5E03F030025
035C8837A7E1F5E03F030025
03111547E4F6F5E03F030025
03057703060EF6E03F030025
0396FC62C92FF6E03F030025
03E510C02F6AF6E03F030025
03FD42672293F6E03F030025
033FD25769A0F6E03F030025
032A322625B4F6E03F030025
032696D0ACCEF6E03F030025
036BDF0456E7F6E03F030025
03308DD62A0FF7E03F030025
0346053ABB2CF7E03F030025
03B2C9A5A24FF7E03F030025
034A97AF6969F7E03F030025
03269FF6E488F7E03F030025
035F3BF0BAA5F7E03F030025
03101DB38AC2F7E03F030025
03D5CA845FEAF7E03F030025
0364A597B513F8E03F030025
0340ADDE3033F8E03F030025
03C1117C5C42F8E03F030025
032871577461F8E03F030025
03EE0F325476F8E03F030025
030F35D0B78FF8E03F030025
03BBCEE883B4F8E03F030025
03EE05528ACDF8E03F030025
034E1D839EF4F8E03F030025
вроде идеальные данные для расшифровки.
вот дальше возникает куча вопросов, допустим взял ключик который приходит от серва CryptInit F0 E8 B3 BF им декодирую потом с получившимся пакетом произвожу танцы с бубном? или сразу надо плясать?
т.е. с какого бока подступится?

Последний раз редактировалось alexsl, 01.06.2008 в 08:53. Причина: Добавлено сообщение
alexsl вне форума   Ответить с цитированием