Показать сообщение отдельно
Старый 29.04.2010, 01:22   #23
Новичок
 
Регистрация: 28.04.2010
Сообщений: 15
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
aSproot пока неопределено
По умолчанию

Спасите мой мозг, какой из байтов пакета OB использует этот код (исходник инициализации корректора из л2пх)
Код:
  with CorrectorData^ do if FromServer then begin
    if _id_mix and(buff[3]=#$0b)then begin
      temp_seed:=PInteger(@buff[PWord(@buff[1])^-3])^;
      _init_tables(temp_seed,_2_byte_table_size);
    end;
//xkor: последние 4 байта)


Сходство Obfuscation Key из Key Packet и нашего мистического ключа из CharacterSelected - они оба 4 байта. Не шарю зачем он нужен, но может просто поксорить их..

Код:
if(buff[3]=#$2e)then begin
      //if(Protocol = 871)or(Protocol = 12)then _init_tables(PInteger(@buff[$16])^, $58); // CT2.2
      //if(Protocol = 851)or(Protocol = 19)then _init_tables(PInteger(@buff[$16])^, $55); // CT2
      //if Protocol = 831 then _init_tables(PInteger(@buff[$16])^, $4E); // CT1.5+
      _init_tables(PInteger(@buff[$16])^, $80);
Obfuscation Key - это сид ГСЧ для составления таблиц DES(или каких там) по которым кодируются ID пакетов. buff[$16] - это он?

Добавлено через 3 часа 43 минуты
Получается что алгоритм корректора повторён в пакхаке, использует оба сида. Что ж ему не нравится..

Последний раз редактировалось aSproot, 29.04.2010 в 01:22. Причина: Добавлено сообщение
aSproot вне форума   Ответить с цитированием