Показать сообщение отдельно
Старый 28.02.2013, 10:20   #1
Пользователь
 
Регистрация: 05.03.2010
Сообщений: 46
Сказал Спасибо: 0
Имеет 14 спасибок в 9 сообщенях
Deadly пока неопределено
По умолчанию Расшифровка

алгоритм для интерлюдии+(Решено)
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);

Последний раз редактировалось Deadly, 02.03.2013 в 00:02. Причина: Добавлено сообщение
Deadly вне форума   Ответить с цитированием