Показать сообщение отдельно
Старый 03.06.2010, 20:37   #8
Новичок
 
Регистрация: 31.05.2010
Сообщений: 11
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
tenary пока неопределено
По умолчанию

Собрал новый невксор.. используя стандартный алгоритм со смешением на константу :
Код:
  
  for k:=size-1 downto 1 do
   pck[k]:=pck[k] xor GKeyR[k and 15] xor pck[k-1];
  if size<>0 then pck[0]:=pck[0] xor GKeyR[0];
  Inc(PLongWord(@GKeyR[keyLen-7])^,size);
получил тоже самое, что было раньше без использования этой библиотеки и галочки "обхода смены xor ключа", то есть по прежнему первый байт меняется. Если менять константу от 0 до 14, меняется весь пакет, становясь нечитабельным.
О чем это может говорить?

Добавлено через 2 часа 24 минуты
Может я не правильно понял алгоритм? Мы получаем длину пакета и ксорим по байтово на соответствуюший кусок ключа, с прибавлением константы 15 ? Не совсем понятен инкремент Inc(PLongWord(@GKeyR[keyLen-7])^,size) , @ - это же ссылка на адрес переменной GKeyR[keyLen-7]? И мы этот адрес смешаем на длину нашего пакета...

Последний раз редактировалось tenary, 03.06.2010 в 20:37. Причина: Добавлено сообщение
tenary вне форума   Ответить с цитированием