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

> Шифрование клиента
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
Juzzver
сообщение 4.6.2014, 12:35
Сообщение #2


**********

Модератор RunUO
Сообщений: 3.431
Регистрация: 1.11.2008
Группа: Супермодераторы
Наличность: 22500
Из: Северная Корея
Пользователь №: 11.273



Не в теме, но быть может будет полезным провести анализ Client Encryption системы из коммунити. Все выше перечисленные пакеты и алгоритмы там используются. Почти все действия в коде сопровождаются комментариями.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 4.6.2014, 13:11
Сообщение #3


*********

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



Цитата(Juzzver @ 4.6.2014, 13:35) *

Не в теме, но быть может будет полезным провести анализ Client Encryption системы из коммунити. Все выше перечисленные пакеты и алгоритмы там используются. Почти все действия в коде сопровождаются комментариями.
Да знаю об этом, как и об коде енкрипт\декрипта в флюре, уо-екст, некротуле и других. Но внятно нигде ничего не сказано, особенно по различия между версиями. Если никто не поможет - буду конечно разбираться сам, просто возни очень много, я даже не уверен что перехватываю весь поток данных от клиента.... В некротуле чето сумбурно расписано, но у меня какой-то треш декриптит (кроме - XOR, он как часики пашет)...

ЗЫ Еще в догонку вопрос - как из таблицы пакетов в клиенте определить тип пакета (клиент-сервер, сервер-клиент, и то и другое)??

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


--------------------
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Frog
сообщение 4.6.2014, 14:32
Сообщение #4


****

Apprentice
Сообщений: 266
Регистрация: 6.9.2005
Группа: Пользователи
Наличность: 0
Пользователь №: 4.172
Возраст: 25



Цитата(StaticZ @ 4.6.2014, 14:11) *
ЗЫ Еще в догонку вопрос - как из таблицы пакетов в клиенте определить тип пакета (клиент-сервер, сервер-клиент, и то и другое)??

Если в ехешнике то не в курсе, а вообще вечером скину в личку таблицу из инжекта, там вроде все учтено что идет в какую сторону, или в обе.
По логин шифрованию – на старых клиентах первые 4 байта это сид, ниже 1.25.36 идет старое xor шифрование, для этого клиента индивидуальное, выше этой версии – стандартное, использующееся по сей день.
С клиента 6.0.5 (если не ошибаюсь) клиент отправляет 1, 4, 16 байт при старте, вместо 4 (сид), что в этих байтах находится можно посмотреть на форуме инжекта, Грин разбирался, отписывался что нарыл.
По гейм шифрованию – все так, хаффман используется после декрипта пакета от сервера, для более подробной инфы можно посмотреть сорцы инжекта старого, там там по текущему логин шифрованию все есть и по гейм без мд5.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
StaticZ   Шифрование клиента   4.6.2014, 3:33
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   И я опять тебя спрошу, а не проще-ли было спросить...   17.7.2014, 11:19
StaticZ   И я опять тебя спрошу, а не проще-ли было спросить...   17.7.2014, 14:20
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, 11:55
Designed by Nickostyle