Собрал новый невксор.. используя стандартный алгоритм со смешением на константу :
Код:
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]? И мы этот адрес смешаем на длину нашего пакета...