Спасите мой мозг, какой из байтов пакета 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 минуты
Получается что алгоритм корректора повторён в пакхаке, использует оба сида. Что ж ему не нравится..