Показать сообщение отдельно
Старый 01.12.2009, 23:05   #1
Пользователь
 
Регистрация: 26.08.2008
Сообщений: 30
Сказал Спасибо: 8
Имеет 10 спасибок в 3 сообщенях
ElKornacio пока неопределено
По умолчанию Проблема с дешифраций LoginInit пакета

код:
Delphi Код:
procedure TLogin.LoginXORDecrypt(var Packet : TPacket); var   i: Int32;   k : Int32; begin   Log('Логин пакет');   i := Packet.Size - 8;   k := PInteger(@Packet.PacketAsCharArray[i])^;   while i >= 6 do begin     PInteger(@Packet.PacketAsCharArray[i])^ := PInteger(@Packet.PacketAsCharArray[i])^ xor k;     k := k - PInteger(@Packet.PacketAsCharArray[i])^;     i := i - 4;   end; end;

Работал исправно месяц где то... а потом в один прекрасный день перестал, причём его никак не трогали. ошибка - Integer Overflow, дебаг показывает что k-PInteger(@Packet.PacketAsCharArray[i])^ даёт настолько низкое число что integer его не выдерживает. раньше такого небыло, а сейчас не работает не на одном сервере. помогите кто сможет)
ElKornacio вне форума   Ответить с цитированием