Показать сообщение отдельно
Старый 15.07.2009, 18:39   #8
Новичок
 
Регистрация: 12.07.2009
Сообщений: 13
Сказал Спасибо: 1
Имеет 2 спасибок в 2 сообщенях
Aieks777 пока неопределено
По умолчанию



Вообщем вот дамп пакета "как есть", то есть не производились никакие действия кроме IntToHex... что дальше, а то вы меня совсем запутали! Дальше как я понимаю отрезаем первые 2 байта отвечающие за размер пакета, потом прозводим сортировку в обратном порядке и получаем пакет, так чтоли? Затем берем берем первый байт который отвечает за тип пакета(сказать, двигатся, сесть и т.д.) и производим анализ какие паметры хранятся в остальном теле пакета...
Итого что получается(беру средний дамп пакета между разделителями ============): отсекаем А0 00, пересортировываем с конца наперед, и получаем :
07 1Е 8B 7D 31 94 64 6D
XX XX XX XX XX XX XX XX
отсюда 07 - Revive:H(ObjectID) из l2phx, то есть нечто типа перерисовки положения объекта наверное... Но исходя из этого остается еще большая куча байтов, СЛИШКОМ большая для ID некоторого объекта, из чего следует что действия неправильны, и следавательно наибольшая вероятность что он зашифрован ))


Едем дальше:
Код:
constructor TXorCoding.Create();
begin
  FillChar(GKeyS[0],SizeOf(GKeyS),0);
  FillChar(GKeyR[0],SizeOf(GKeyR),0);
  keyLen := 0;
End;
Создаем Объект класса TXorCoding
Заполняем нулями массивы: GKeyR заполняем нулями SizeOf(GKeyR) раз, и GKeyS заполняем нулями SizeOf(GKeyS) раз
Устанавливаем длину(?) KeyLen в ноль

Код:
procedure TXorCoding.DecryptGP(var Data; const Size: Word);
var
  k:integer;
  pck:array[0..$4FFF] of Byte absolute Data;
begin
  for k:=size-1 downto 1 do
    pck[k]:=pck[k] xor GKeyR[k and keyLen] xor pck[k-1];
  if size<>0 then pck[0]:=pck[0] xor GKeyR[0];
  Inc(PLongWord(@GKeyR[keyLen-7])^,size);
end;
Что у нас тут интересного:
Принимем в процедуре пакет Data в хексе, и ничего более, также принимаем число Size отвечающее за размер пакета
Расксориваем пакет, с байта Size-1, что посути является SizeOf(ВЕСЬ ПАКЕТ БЕЗ ОТСЕЧЕНИЯ ПЕРВЫХ 2УХ БАЙТ) - 3
В ходе Расксоривания также одновременно и сортировка в обратном порядке
Еще помимо этого в массиве GKeyR байт под номером KeyLen-7 увеличиваем на Size(зачем, и почему именно KeyLen-7, видимо для Грации это будет KeyLen-15??)


Как я понял для дешифровки ВХОДЯЩЕГО трафика мне ничего более использовать ненадо

ЗЫ: Народ, я сел за АПИ 3 дня назад, сжальтесь и пишите поподробнее, знающим людям тут на 1 минуту больше по клавишам стучать чтобы написать подробный ответ
ЗЗЫ: Повторюсь, указывайте на ошибки, не надо сразу причислять к нубам, на ошибках учатся

Последний раз редактировалось Aieks777, 16.07.2009 в 09:54.
Aieks777 вне форума   Ответить с цитированием