Показать сообщение отдельно
Старый 11.11.2010, 05:35   #1
Новичок
 
Аватар для Marfey
 
Регистрация: 14.04.2008
Сообщений: 19
Сказал Спасибо: 7
Имеет 3 спасибок в 3 сообщенях
Marfey
По умолчанию Дешифровка трафика с гейм сервера

Доброе время суток. Подскажи в чем мб проблема дешифрую трафик с гейм сервера потом сверяю как расшифровывает l2phx и есть разница.
8байт норм расшифровывается потом 8 байт неправильно потом опять 8 норм и т д

вот процедуры расшифровки
Код:
procedure TCryptXOR.Decrypt(var Data; const Size: Word);
var
  k:integer;
  pck:array[0..90] of Byte absolute Data;
begin
  if(not isInit)or(size<1)then Exit;
  for k:=size-1 downto 1 do
    pck[k]:ck[k] xor GKeyR[k and keyLen] xor pck[k-1];
  pck[0]:ck[0] xor GKeyR[0];
  Inc(PCardinal(@GKeyR[keyLen-7])^,size);
end;

procedure TCryptXOR.InitKey(const keyInit; const Size: Cardinal);
const
  KeyConst: array[0..3] of Byte = ($A1,$6C,$54,$87);
  KeyConstInterlude: array[0..7] of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97);
begin
  if Size=16 then begin
    keyLen:=15;
    Move(keyInit,GKeyS,8);
    Move(KeyConstInterlude,GKeyS[8],8);
  end else begin
    keyLen:=7;
    Move(keyInit,GKeyS,4);
    Move(KeyConst,GKeyS[4],4);
  end;
  Move(GKeyS,GKeyR,16);
  isInit:=True;
end;
вот так инициализирую ключ
Код:
procedure KeyPacket(buff: array of byte; Len: integer);
begin
Move(buff[4],key,16);
fCryptSrv:=TCryptXOR.Create;
fCryptSrv.InitKey(key,16);
end
Вот так расшифровываю
Код:
   fCryptSrv.Decrypt(buff[2],len-2);
Добавлено через 11 часов 16 минут
Вопрос снимается сам разобрался

Последний раз редактировалось Marfey, 11.11.2010 в 05:35. Причина: Добавлено сообщение
Marfey вне форума