Показать сообщение отдельно
Старый 13.07.2009, 13:59   #1
Новичок
 
Регистрация: 12.07.2009
Сообщений: 13
Сказал Спасибо: 1
Имеет 2 спасибок в 2 сообщенях
Aieks777 пока неопределено
По умолчанию Gracia Final (RuOff) - XOR key

Вкратце:
Код:
procedure TSnifferThread.ParcePacket(const PacketSize: Word);
var
  IPHeader: TIPHeader;
  ICMPHeader: TICMPHeader;
  TCPHeader: TTCPHeader;
  ci: Integer;
  PacketType:String;
  Addr:TInAddr;
begin
  Inc(MainForm.TotalPacketCount);
  // Кол-во пакетов
  Move(Packet[0], IPHeader, IPHeaderSize);

  // Определяем тип пакета
  case IPHeader.iph_protocol of
    IPPROTO_ICMP: // ICMP
    begin
      Move(Packet[IPHeaderSize], ICMPHeader, ICMPHeaderSize);
    end;
    IPPROTO_TCP: // TCP
    begin
      Move(Packet[IPHeaderSize], TCPHeader, TCPHeaderSize);
    end;

  else
    PacketType := 'Unsupported (0x' + IntToHex(IPHeader.iph_protocol, 2) + ')';
  end;

  // Фильтр по IP

  Addr.S_addr := IPHeader.iph_src;
  if inet_ntoa(Addr)=MainForm.RemHost.Text then begin

  HexData:='';
  for ci:=1 to PacketSize do HexData:=HexData+' | '+IntToHex(Packet[ci], 2);
  HexData:=HexData+#13+#10;
  MainForm.HexMemo.Lines.Add(HexData);

  IntData:='';
  for ci:=1 to PacketSize do IntData:=IntData+' | '+IntToStr(Packet[ci]);
  IntData:=IntData+#13+#10;
  MainForm.IntMemo.Lines.Add(IntData);

  Synchronize(ShowPacket);
  end;
^^^^это все прием пакета

Вопрос в следущем: нужно как я понимаю пакет отправить на Дэкрипт по xor'у чтобы видеть реальную структуру пакета (если что попровляйте), по xor'у я знаю следущее: чтобы расшифровать нужен Ключ-длина пакета которая указывается в начале пакета, т.е. первые 2 байта типа A0 00(если что поправьте), также нужна некая константа шифрования, из исходников к l2phx из Newxor'a вижу следущее: константа для интерлюдии=15, для других хроник=7, нужна константа для Gracia Final для руоффа(это суть вопроса).

Попутные вопросы: на расшифровку надо отправлять пакет без первых 2 байт или полностью?

ЗЫ: Если константа шифрования=7 то сорри, я сейчас на работе и проверить немогу
ЗЗЫ: На поиск не отправлять, ибо я в сетевом програмировании, тем более АПИшном пробую себя впервые, так что даже если ответы есть на мои вопросы, то я их непонял скорее всего, или просто незаметил тему )
ЗЗЗЫ: Так же хотелось бы на основе данной темки сделать фак(когда я сам разберусь), как писать снифер+расшифровщик+простейший анализатор пакетов... для самого низкого уровня подготовки программиста

Жду ответов, коментов, и здоровой критики где можно сделать лучше, быстрее, менее ресурсотребовательным мой код, с указанием где именно исправить, или хотя бы какой функцией/алгоритмом заменить! :-)


Скачать файл

Добавлено через 3 часа 53 минуты
Добавил дешифровку по XOR'у в модуль XORUnit.pas на основе Coding.pas из l2phx'а, проблемы с параметрами и возможно с инизализацией Объекта класса декодирования

Скачать файл

Последний раз редактировалось Aieks777, 13.07.2009 в 13:59. Причина: Добавлено сообщение
Aieks777 вне форума   Ответить с цитированием
За это сообщение Aieks777 нажился спасибкой от: