PDA

Просмотр полной версии : Проблема с дешифраций LoginInit пакета


ElKornacio
01.12.2009, 23:05
код:

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

alexteam
01.12.2009, 23:33
ctrl+shit+f11-compiller-overflow checking