алгоритм для интерлюдии+(Решено)
var
k: integer;
begin
for k:=size-1 downto 1 do
pck[k]:=pck[k] xor key[k and 7] xor pck[k-1];
if size<>0 then pck[0]:=pck[0] xor key[0];
IncAsInteger(key, 0, size);
end.
начиная с Interlude ключе состоит из 2 частей
1 - динамическая, которая высылается во 2 пакете от сервера и равна 8 байтам
2 - статическая, и равна C8 27 93 01 A1 6C 31 97
алгоритм тот же что и в c4...
На с# можно использовать след функцию(допиливайте сами это вырезка)
Код:
keystat.CopyTo(Key, 8);
for( int i = 0; i < data.Length; ++i )
{
byte temp2 = data[i] ;
data[i] = Convert.ToByte((temp2 ^ (Key[i % 16]) ^ temp));
temp = temp2;
}
key =Convert.ToString((Convert.ToInt64(BitConverter.ToString(keystat).Replace("-",""),16)+data.Length),16);