Показать сообщение отдельно
Старый 28.07.2008, 07:35   #16
Пользователь
 
Регистрация: 22.04.2008
Сообщений: 51
Сказал Спасибо: 14
Имеет 36 спасибок в 11 сообщенях
alexsl пока неопределено
Подмигивание идея была такова

чтоб не заморачиватся с разгадкой генерации начального ключа, была мысль использовать какойнить пакет,в частном случае, известно, что 3 пакет от клиента это выбор чара 0D=CharacterSelected:d(CharSlot) 0D 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...., после которого следовало вычислить ключ и изменить оный.

в скрипте имхо так:
if FromClient and PckCount=3 then
begin
// key:=танцы с бубном получения ключа
InitKeyS(key)
end;


чтоб это работало, нужно :
добавить функцию для скриптов возвращ. номер пакета PckCount.
и программе добавить новую процедуру InitKey2 котороя инициализирует все 8 байт.

delphi Код:
procedure TXorCoding.InitKey2(const XorKey; Interlude: Boolean = False); const   KeyConst: array[0..3] of Byte = ($A1,$6C,$54,$87);   KeyIntrl: array[0..7] of Byte = ($C8,$27,$93,$01,$A1,$6C,$31,$97); var key2:array[0..15] of Byte; begin   if Interlude then begin     keyLen:=15;     Move(XorKey,key2,8);     Move(KeyIntrl,key2[8],8);   end else begin     keyLen:=7; //    Move(XorKey,key2,4); // тут меняю ключ 8 байт     Move(XorKey,key2,8); //    Move(KeyConst,key2[4],4);   end;   Move(key2,GKeyS,16);   Move(key2,GKeyR,16); end;

зы: еще идейка, чтоб при загрузке нерасшифрованных (сохраненных как есть) пакетов из текстового файла они проходили через процедуру расшифровки/шифровки заново, т.е. удобно подбирать(или тестировать длл невхор) алгоритм, смотря в логах что получилось, т.к. большую часть времени нет возможности запускать линейку.

зы: в общем как всегда желания не совпадают с возможностями
зыы: в системном программирования я "не взуб ногой" больше прикладник.
alexsl вне форума   Ответить с цитированием