PDA

Просмотр полной версии : Delphi: AES aka Rijndael + L2


OllyDbg
08.03.2011, 01:57
Как некоторые знают, а некоторые нет: в Л2, начиная с грации НЦСофт встроили слабенькую проверку валидности клиента.
Можно говорить много, но сразу к сути: в частности, в EnterWorld есть 64 байта, которыми клиент отвечает на 64 байта из CharacterSelected.
Это простой Rijndael (aka AES), в CBC-режиме.
Вот только НЦСофт - криворукие идиоты: в валидной имплементации этого алгоритма предусмотрено 3 стандарта (AES-128/192/256 bit) с ключом 16,24,32 байта соответственно; размер блока для CBC - везде один, 16 байт.
В зависимости от размера ключа - увеличивается количество проходов для генерации ключевой таблицы до 10,12,14 соответственно.
Программеры НЦСофта же взяли ключ 16 байт и вектор IV 32 байта, размер блока - 32 байта.
Ищется дельфи-реализация Rijndael, где можно задать такие параметры.
DCP_Crypt & LockBox сделаны по RFC и естественно такого не принимают.
Реверсить лень, портировать с Си 400 строк полезного кода - лень.
Неужели нет готового решения для криворуких реализаций НЦСофта?

Nickers
14.03.2011, 18:43
Какой ж я все-таки тупой. :(