Page 1 of 1

А как работает криптация пакетов ? (клиент 2.0.0)

Posted: 2004-06-09 05:37:57
by Dr.Assassin
Я пробую написать емулятор УО клиента, чтобы удобно было ставить чара на прокачку без окна ультимы. Но столкнулся с проблемой - криптации пакетов, у меня шард использует криптацию пакетов 2.0.0. Я смотрел исходники инжекта, но там все както запутано. Вчасности меня интересует как можно разкодировать и как закодировать пакеты. Я прорамирую на Делфи7, но в принципе могу постараться понять и С++. Пожалуста, помогите разобраться, или хотябы подскажите в каком порядке используются процедуры в исходнике инжекта, или может там есть готовая процедура для крипта/декрипта? Сенки.

Posted: 2004-06-09 21:07:14
by Xpol
во ! я тоже хочу на эту тему позаморачиваться :idea:
я в дельфях чуток писал когда-то :wink:
тока не знаю с чего начать ...
поделись наработками могет вместе че слабаем ?
какие основные этапы и ваше как клиент работает ?

Ж-)

Posted: 2004-06-10 06:30:49
by Dr.Assassin
Окей, разработок мне нежалко, тем более что я вчера наново переписал ету типа УОКачалку :-)
Программирую я на Делфи(7), но с использованием библиотеки KOL, она позволяет создавать очень компактный код, как VC++, но удобство программирования как в Делфи. К этой библиотеке есть и набор зеркальных компонентов MCK. Которые используются для визуального построения формы. Вобщим есть достаточно много компонентов, которые добрые люди портанули под KOL (Key Object Library), в том числе и компоненты работы с сокетами (кстати код полностью открыт) написаные на асинхронных API функциях.
Вот ссылочки на сайты, с которых я скачал все необходимое:

Официальный сайт: http://bonanzas.rinet.ru/rindex.htm
вроде его зеркало: http://xcl.cjb.net/
другие сайты: http://kol.mastak.ru/
http://delphikol.narod.ru/
... возмозно ешо какие есть (смотри линки в этих сайтах)

Скачать оттуда можно (и нужно) документацию, екзамплы, побольше компонентов, полезные утилиты, и естесно новые библиотеки KOL&MCK.
Общим просто качаеш архив всего нужного + компоненты (вес~5.8Mb):
http://reactor.reality-protocol.de/php/ ... t=download
(эту ссылку я нашол на http://bonanzas.rinet.ru/r_downloads.htm)

Моя мыльная коробочка: nikolas @ unet . net . ua
---
Простота - это сложность изложенная подробно! Ж-)

Posted: 2004-06-10 06:46:41
by Dr.Assassin
Xpol wrote:во ! я тоже хочу на эту тему позаморачиваться :idea:
я в дельфях чуток писал когда-то :wink:
тока не знаю с чего начать ...
поделись наработками могет вместе че слабаем ?
какие основные этапы и ваше как клиент работает ?


Общим на даный момент я написал прогу которая является промежуточным звеном между СерверомУльтимы, и УОКлиентом, тоесть получает пакеты от одного и передает другому (в обоих направлениях). В качестве сервера я использую POL v0.95, вроде самый новый, скачать можно с их сайта, и ещё я почистил мир, чтобы он незагружал компа (PII,350Мгц,64оперы). Тоесть прога может смотреть пакеты которые эти парни посылают друг-другу.
Структуру и назначение пакетов я планирую выдрать с исходников Инжекта (кстати мне удалось скомпилировать инжект на VC++). Пока самая актуальная проблема - это криптация, которая так извращает пакеты, что каждый следующий (например юзе скил Хидинг) пакет вапсче непохож на все предыдущие. Думаю сегодня займусь этой проблемой :wink:
Исходников мне не жалко, пиши на мой почтовый ящик, вышлю что есть :-)

Posted: 2004-06-10 10:08:06
by Lord Ruslan Nightmare
Ну, если ты сможешь достать 2fish под дэлфи, совместимый не только бинарно, но и реально совместимый с twofish.c - тогда, может, что-то получится.

Posted: 2004-06-10 10:51:56
by Dr.Assassin
Lord Ruslan Nightmare wrote:Ну, если ты сможешь достать 2fish под дэлфи, совместимый не только бинарно, но и реально совместимый с twofish.c - тогда, может, что-то получится.


Непонял, а что такая большая проблема перевести существующий Twofish2.c на Delphi?
Пока я просто хотел бы услышать как именно осуществляется криптация пакетов, и какие процедуры за что отвечают - приблизительно так : Процедура Проц1 инициализирует ключи k1, k2. Далее все следующие пакеты шифруются процедурой Проц2, а дешифруются процедурой Проц3, а ключи k1 и k2 автоматически принимают новые значения. Параметры криптации (зависящие от версии, типа 2.0.0, 3.0.2,..) расположены в переменных pc1,pc2.
...и т.д. в таком духе :)
Общим хелп :-)

Posted: 2004-06-11 03:03:01
by Dr.Assassin
Lord Ruslan Nightmare wrote:Ну, если ты сможешь достать 2fish под дэлфи, совместимый не только бинарно, но и реально совместимый с twofish.c - тогда, может, что-то получится.


Кстати, клиент 2.0.0 для криптации исходящих пакетов использует алгоритм Blowfish!, а входящие пакеты вообще незакриптованы. В общим сенки за "помощь", я уже разобрался, осталось допортировать алгоритм с С++ в Делфи. :P

Posted: 2004-06-24 03:36:13
by Xpol
Вот ша тока сессию сдам, тогда будет время покавырять исходники инжи...
Вообше хотелось бы что-нить типа инжи но без клиента а тока окошко консольки добавить (конечный результат я как-то так себе представляю)

Posted: 2004-06-24 16:50:23
by Dr.Assassin
Xpol wrote:Вот ша тока сессию сдам, тогда будет время покавырять исходники инжи...
Вообше хотелось бы что-нить типа инжи но без клиента а тока окошко консольки добавить (конечный результат я как-то так себе представляю)


У меня конечный вариант уже почти созрел :) . Он являет собой некое подобие конструктора, в который можно добавлять все что угодно, создавать Макросы, которые могут реагировать на тобой же созданные события. Думаю будет система приоритетов, которая будет расчитывать какие события более критичны (важны) в даный момент... В общим много чего уже готово, осталось просто довоплотить эту идею в "железо" так сказать.

А сесия, это сезонное заболивание :), у мя завтра последняя, решающая битва с экзаменатором :-)