код:
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 его не выдерживает. раньше такого небыло, а сейчас не работает не на одном сервере. помогите кто сможет)