Показать сообщение отдельно
Старый 07.10.2009, 16:11   #25
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

пардон, исправил... к стати.. мог бы и сам...
я просто вчера чуть чуть подумал, и убрал необходимость декодировать длинну пакета повторно (если декодирование требуется) -))


move(EncAccumulator[2], L2Packet.data[0], L2Packet.Size-2);
move(DecAccumulator[2], L2Packet.data[0], L2Packet.Size-2);

проблемма была тут. -) в дату тпакета пихались данные начиная с длинны, а не начиная с данных.

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

Добавлено через 18 минут
кстати, возми на заметку.
если у тебя кодируються и первые 2 байта пакета, при чем от их декодирования зависит и ключ(чи по чем оно там криптоваться будет) то следует:

после вот такого
move(DecAccumulator[0], L2Packet.Size, 2);
декриптовать длинну лежащую в L2Packet.Size НО НЕ изменять ключ (если он меняеться)
при чем учти что только в PreDecrypt это требуеться. в постенкрипт поступающие от пх данные идут в фармате 2 первых байта = длинна.

такие вот места
move(ХХХAccumulator[2], L2Packet.data[0], L2Packet.Size-2);

заменить на
move(ХХХAccumulator[0], L2Packet, L2Packet.Size);

а в процедурах YourDecryptFuncton/YourEncryptFuncton
ПОВТОРНО декритовать/криптовать кусок данных вместе с L2Packet.Size при чем уже с изменением ключа.
__________________
L2Ext - project closed.

Последний раз редактировалось alexteam, 07.10.2009 в 16:19. Причина: Добавлено сообщение
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от: