PDA

Просмотр полной версии : Хитрый XOR


Oglan
11.06.2011, 05:15
Всем привет!
Есть сервак, некое подобие Gracia Final.
Пытаюсь разобраться с шифрованием пакетов... При запуске l2ph все пакеты от сервера показывает отлично, а вот пакеты от клиента очень странно - само тело пакета показывает нормально, а вот идентификатор пакета всегда неправильный. Все начинается с пакета AuthLogin от клиента к серверу. Вот пример (логин конечно же затерт):
50 76 00 76 00 76 00 76 00 76 00 76 00 76 00 76 00 76 00 00 00 AB 2A 0F 00 AF 34 00 00 00 00 00 00 00 00 00 00 01 00 00 00 3C 01 00 00 00 00 00 00

Как видно начиная со 2-ого байта данные очень похожы на нормальный AuthLogin, но вот первый байт должен был бы быть 2B. Еще не очень понятно - в конце добавились лишние байты - они повторяются для всех логинов...

Может кто сталкивался с такой защитой?

P.S. Попробовал залогинится через L2.NET - отлично логинится. Из чего можно сделать вывод что защита в принципе стандартная... только я вот никак не пойму ее :(

Nickers
11.06.2011, 11:34
Как видно начиная со 2-ого байта
Я 1 не умею взглядом конвертировать?

Oglan
11.06.2011, 13:45
Хорошо, распишу:
стандартный пакет AuthLogin после дешифрации выглядит следующим образом:
2B (в моем случае 50) - идентификатор пакета
76 00 76 00 76 00 76 00 76 00 76 00 76 00 76 00 76 00 00 00 - логин
AB 2A 0F 00 AF 34 00 00 - PlayKey (приходит с ответом play ok от логин сервера)
00 00 00 00 00 00 00 00 - LoginKey (на сколько я понял после интерлюди он всегда нулевой)
01 00 00 00 - единица в конце пакета, по идее, на этом стандартный AuthLogin заканчивается (во всяком случае мне не удалось найти других описаний)
3C 01 00 00 00 00 00 00 - не понятно что это такое...

В общем, выложил логи пакетов (см. attach), может кто подскажет в чем тут дело? Очень похоже что каким-то образом надо еще обрабатывать айдишники пакетов, но они каждый раз разные...