Здравствуйте, гость ( Вход | Регистрация )

> Шифрование клиента
StaticZ
сообщение 4.6.2014, 3:33
Сообщение #1


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Насколько мне удалось понять протокол UO устроен следующим образом:

1) Приветствие - Клиент отправляет не зашифрованный пакет 0xEF (New Client Version). Проверенно на 7.0.х клиентах, для старых могу предположить что вместо него идет 0xBD (Client Version), но проверить нет возможности. Кто знает когда был введен пакет 0xEF и может ли кто подтвердить приветствие старых клиентов???

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


3) После перенаправления клиента с логин-сервера на гейм-сервер пакетом 0x8C (Play Server Accept), начинает использоваться шифрование, в качестве сида которого используется, как я понял - последние 4 байта сего пакета (Auth ID)... Дальше начинается муть.... В зависимости от версии клиента используются алгоритмы шифрования:
а) < 2.0.0 - Blowfish (клиент->сервер)
б) 2.0.0x to 2.0.3 - Blowfish + Twofish (клиент->сервер)
в) > 2.0.4 - Twofish (клиент->сервер) ||| MD5 (сервер->клиент)

В тоже время в нетах всплыло что-то про сжатие Huffman, которое применяется то ли для старых клиентов то ли перед шифрованием....


Кто в теме, может просветить о деталях сего процесса. Так же хотелось бы уточнить, что именно шифруется - содержимое пакета без ID и размера в случае если у пакета не постоянный размер? Или шифруется весь поток блоками какого-то размера?

И еще меняется ли размер данных при использовании этих алгоритмов?

Сообщение отредактировал StaticZ - 4.6.2014, 3:35


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Warstone
сообщение 17.7.2014, 11:19
Сообщение #2


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



И я опять тебя спрошу, а не проще-ли было спросить у меня или в код посмотреть?.. https://code.google.com/p/uo-ext/source/bro...tStream.pas#382

If PByte(FIncommingBuffer.Base)^ = $EF Then Begin // New 0xEF packet for seeding.

Приходит пакет 0xEF. Ввяттовский гайд не доступен к сожалению, но есть описания этого пакета. Пришло с 6.0.12 что-ли...

End Else Begin
FSeed := PCardinal(FIncommingBuffer.Base)^;

Если не 0xEF, то это старое и там лежит сид.

Давным давно все все сделали... Любишь делать ненужную работу?..


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 17.7.2014, 14:20
Сообщение #3


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Warstone @ 17.7.2014, 12:19) *
И я опять тебя спрошу, а не проще-ли было спросить у меня или в код посмотреть?..
А я разве не спрашивал? А эта тема что? В общем и в целом многие знают, как и я. Но внятное описание подобных вещей отсутствует, а когда начинаешь делать сам - сразу всплывает куча деталей, неточностей, вопросов и нюансов, а порой как и в моем случае бывает еще не уверенность не только в правильности алгоритма но и своей логике (как я писал - хаваю пакеты не через прокси, так что не было даже уверенности что перехватываю весь поток).


Цитата(Warstone @ 17.7.2014, 12:19) *
https://code.google.com/p/uo-ext/source/bro...tStream.pas#382Если не 0xEF, то это старое и там лежит сид.
Конечно спасибо, как говориться лучше поздно чем никогда, но я еще в первом посту писал что с шифрование логин сервера никаких проблем нет - его сделал моментально и все работало как часики.


Цитата(Warstone @ 17.7.2014, 12:19) *
Давным давно все все сделали... Любишь делать ненужную работу?..
А я разве претендую на лавры первооткрывателя? Это делали и сделали уже множество людей, на работы которых я и опирался. Чего и не скрываю и выражаю большую благодарность всем, кто старался помочь.

Сообщение отредактировал StaticZ - 17.7.2014, 14:21


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
StaticZ   Шифрование клиента   4.6.2014, 3:33
Juzzver   Не в теме, но быть может будет полезным провести а...   4.6.2014, 12:35
StaticZ   Не в теме, но быть может будет полезным провести ...   4.6.2014, 13:11
Frog   ЗЫ Еще в догонку вопрос - как из таблицы пакетов в...   4.6.2014, 14:32
Warstone   Статикз, провести анализ работы UOExt религия не п...   5.6.2014, 0:46
StaticZ   Статикз, провести анализ работы UOExt религия не ...   5.6.2014, 1:35
Warstone   Кстати я так и не понял как ты из клиента вытащил ...   14.6.2014, 22:00
RL_ka   список версий всех существующих клиентов, за исклю...   14.6.2014, 12:18
StaticZ   Пакеты-изменения: 6.0.1.07 - пакет 08, пакет 25, ...   16.6.2014, 5:29
Warstone   Ну и еще можно добавить что VerInfo клиента дает и...   14.6.2014, 22:33
StaticZ   Ну и еще можно добавить что VerInfo клиента дает ...   16.6.2014, 5:12
Warstone   А ты какую версию перехватываешь?.. И не проще-ли ...   19.6.2014, 0:31
Nickname   И не проще-ли найти ML ранку (RunUO RE 1.4) она е...   19.6.2014, 0:40
StaticZ   А ты какую версию перехватываешь?.. И не проще-ли...   19.6.2014, 14:09
Warstone   Ты не можешь сделать зеркальный алгоритм? Печально...   21.6.2014, 18:26
StaticZ   Ты не можешь сделать зеркальный алгоритм? Печально...   21.6.2014, 20:56
StaticZ   Итак проблема решена, главным виновником оказались...   17.7.2014, 3:12
yazZ3va   Итак проблема решена, главным виновником оказалис...   31.10.2015, 0:58
Warstone   И первый мой коммент...Да... Так как кому надо - з...   18.7.2014, 21:03
BoBrO   не могли бы вы скинуть пример пакета "0х5D...   22.7.2014, 10:20
StaticZ   не могли бы вы скинуть пример пакета "0х5D...   27.7.2014, 13:52
Frog   не могли бы вы скинуть пример пакета "0х5D...   30.7.2014, 0:22
Warstone   Гайд Вятта накрылся. А я его не сохранил ((   29.7.2014, 23:47
AdmiR   Гайд Вятта накрылся. А я его не сохранил (( А гд...   9.10.2014, 2:28
Mirage   Вот так и теряется в вечности нужное :(   9.10.2014, 8:23
Warstone   Пакет гайд Вятта http://ruosi.org/packetguide/inde...   31.10.2015, 7:33
yazZ3va   Не знаю куда я смотрел, но первые 4 байта это game...   31.10.2015, 12:22


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 8.7.2025, 3:04
Designed by Nickostyle