Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   [C++] Шифрование трафика. RC4 (https://forum.zone-game.info/showthread.php?t=17231)

ALF. 21.12.2011 01:16

[C++] Шифрование трафика. RC4
 
Всем доброго времени суток.
В общем решил изменить алгоритм шифрования на RC4.

С сервер частью проблем не возникло, а вот с клиент есть небольшие сложности.

В клиенте я сделал 2 замены VMT. То есть место стандатрных функций шифрования вызываются мои.

Всё вроде работает нормально, пока игрок не вошел в мир (именно в мир, Список чаров и т д работает норм, то есть шифрация\дешифрация работает нормально).

После того как игроку пришли координаты нпц и т д он начинает слать серверу всякую хрень сам по себе (мб UNetworkHandker :: Tick???)

Код:

/******************************************************************************************************
* RC4 Encrypt
******************************************************************************************************/
int __stdcall NewEncrypt(byte * buff, __int64 * Key, signed int size)
{
        if (size < 2 || size > 4096 || !Key )
                return 0;
        rc4.Encrypt(buff, size);
        return 0;
};

/******************************************************************************************************
* RC4 Decrypt
******************************************************************************************************/
int __stdcall NewDecrypt(byte * buff, __int64 * Key, signed int size)
{
        if (size < 1 )
                return 0;
        rc4.Decrypt(buff, size);
        return 0;
};

Подскажите пожалуйста, какие еще дописать проверки в функции NewEncrypt ибо уже просто не соображаю сам что делаю. 2-й день сижу не могу понять) :help::help::help:

Azagthtot 21.12.2011 09:59

Re: [C++] Шифрование трафика. RC4
 
RC4 - ПОТОКОВЫЙ алгоритм шифрования.
И если при выборе чара обмен весьма прост - пакет с клиента, пакет от клиента, то при состоянии "в игре" количество пакетов нарастает лавинообразно, и вы скорее всего, теряете "цепочку". Очень похоже, что вы используете один криптер для работы в оба направления. Поэтому у вас и получается "каша". Используйте два объекта для шифрования входящего и исходящего трафика

ALF. 21.12.2011 10:30

Re: [C++] Шифрование трафика. RC4
 
Огромное спасибо!!!! :)


Текущее время: 10:34. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot