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

19 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Uoext. Расширяя Возможности Клиента, We do what EA can't.
StaticZ
сообщение 15.1.2011, 16:42
Сообщение #41


*********

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



Цитата(Warstone @ 15.1.2011, 15:23) *

Когда я это говорил?
"Волонтеров нету (внезапно)."

Цитата(Warstone @ 15.1.2011, 15:23) *

Или версию читать из ехе (где она там зашита - хз)
Именно ее и читать, она нигде не зашита а спокойно сидит в таблице ресурсов... прочитать не проблема. винапи ето умеет )

Цитата(Warstone @ 15.1.2011, 15:23) *

Она подключает в АП ехе свою длл.
ммм хитро..... я то думал это просто ммм сервер


--------------------
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
сообщение 15.1.2011, 17:49
Сообщение #42


*********

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



Цитата
"Волонтеров нету (внезапно)."
А до этого фразу 5 дней назад про необходимость волонтеров - не видел?
Цитата
Именно ее и читать, она нигде не зашита а спокойно сидит в таблице ресурсов... прочитать не проблема. винапи ето умеет
Уже рассказали... Значит, возможно, я рано бью тревогу.
Цитата
ммм хитро..... я то думал это просто ммм сервер
Ну в АП ехе создается в отдельном потоке прокси-сервер. Клиент насильственно подключается к этому прокси (да, а клиент и сервер сидят в одном процессе. Вот такая-вот загогулина).
Надо это для того, чтобы можно было перехватывать обращение клиента к WinAPI. Там будут единственные проблемы с синхронизацией, но они решаемы. Зато не надо будет городить межпроцессное взаимодействие.


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


**********

Администратор Форума
Сообщений: 3.003
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 31652
Пользователь №: 9.227



Что касается меня, я вроде уже отписывался(касается почти всех подобных задумок):
- могу потестить что-либо.
- могу оценить совместимость чего-либо с эмулятором SphereServer 0.56b.
В случае, если это не требует особых знаний или больших затрат времени.
Не программист, поэтому помочь в написании програмного кода чего-либо не могу, да и времени лишнего нет.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 17.1.2011, 10:23
Сообщение #44


*********

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



Да.... насколько я понял тут 3 калеки (включая меня) )). Ладно, проехали. Сейчас силы сосредоточенны на поддержку шифрования со стороны клиента (эмуляция галочки Patch OSI encryption в Razor или UORise, если коротко). Со стороны сервера - хз надо-ли вообще.


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


*********

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



Собственно новости:
В готовящейся версии:
- Фикс багов (в частности, самый тупой, который видел - Вызов zLib крашился, если самой zLib не было).
- Шифрование. Сейчас работает прозрачное шифрование Login сессии. Со стороны клиента - автоопределение, в сторону сервера - задается в настройках шарда. Коммит будет, когда будет работать шифрование Игрового сервера.

Да, похоже что Шифрование это началось с 3-х клиентов. То есть 2-е клиенты могу (надо тестировать вообще-то) пойти лесом (ну пока-что).


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


*********

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



Следующая ревизия. Детект шифрования клиента. Полностью работает нешифрованный клиент (с проксей, умеющей определять шифрование), Логи и часть Геим шифрования в шифрованном клиенте. Тут не успел вчера просто.

И код опять немного отрефакторился.

Сообщение отредактировал Warstone - 1.2.2011, 16:40


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


**********

Администратор Форума
Сообщений: 3.003
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 31652
Пользователь №: 9.227



Цитата(Warstone @ 30.1.2011, 4:36) *

Да, похоже что Шифрование это началось с 3-х клиентов. То есть 2-е клиенты могу (надо тестировать вообще-то) пойти лесом (ну пока-что).
По моим данным, начиная с версии 2.0.4 до настоящего времени используется 1 и тот же тип шифрования. В более ранних клиентах есть какие-то нюансы. Вот, кусок из списка криптов сферы:
Цитата
[DEFNAME ENC_TYPE]
ENC_NONE 0 // No encryption
ENC_BFISH 1 // Blowfish
ENC_BTFISH 2 // Blowfish + Twofish
ENC_TFISH 3 // Twofish

0700110 02DFB574D 0A3ED9E7F ENC_TFISH // 7.00.110
...
0200040 02DF385BD 0A3ED127F ENC_TFISH // 2.00.40
0200030 02DBBB7CD 0A3C95E7F ENC_BTFISH // 2.00.30
0200020 02D63ADDD 0A3A5227F ENC_BTFISH // 2.00.20
0200010 02D2BA7ED 0A3817E7F ENC_BTFISH // 2.00.10
0200000 02D13A5FD 0A39D527F ENC_BTFISH // = 2.00.00X
0200000 02D13A5FD 0A39D527F ENC_BFISH // 2.00.00
Что такое Blowfish и Twofish я лично не в курсе, можешь сам узнать, если хочешь.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 1.2.2011, 23:21
Сообщение #48


*********

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



http://code.google.com/p/uo-ext/source/bro...der/Twofish.pas

Ой...

Но все-равно - спасибо.

На самом деле надо будет распотрошить исходники инжекта.

Кстати, именно по этому я и говорил что 2.0.3 и ниже - поддерживаться, скорее всего, не будут. Мне лениво делать старое шифрование. И если новое - нормально, так как будет спрос на "вот это, но без Разора", то до 2.0.3... Сами снимете.


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


*********

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



Цитата(wap @ 1.2.2011, 20:56) *

Что такое Blowfish и Twofish я лично не в курсе, можешь сам узнать, если хочешь.

Алгоритмы шифрования:
http://ru.wikipedia.org/wiki/Blowfish
http://ru.wikipedia.org/wiki/Twofish


--------------------
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
сообщение 12.2.2011, 17:43
Сообщение #50


*********

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



Поддержка шифрованного клиента есть. Надо потестить на шифровнном сервере. То есть чтоб и клиент был шифрованный и сервер... Где-бы такой взять, кроме как на ОСИ?


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


*********

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



Да, 10-я ревизия обновила транк (реинтеграция шифрования).

Поправим прежние планы:

1) Переделать инициализацию на вызов не по "одной процедуре", а все сразу скопом.
2) Дать возможность указывать протокол в плагине (поддержка любого протокола любой версии, если вы напишите "протокольный плагин")
Можно указывать протокол, который не следует стандарту "Если длинна пакета не известна, то она пишется во 2-м и 3-м байте пакета"
3) Криптование со стороны клиента и сервера (Шифрованный клиент к нешифрованному серверу и наоборот).
4) Распаковка/Запаковка zlib'ом пакета с Гампами (и других пакетов, если такие будут)
5) Доработка утилитарных классов. В частности для чтения/записи пакетов.
6) Механизм отслеживания "оригинальных" и "измененных" Серийников для того, чтобы можно было удобно и безопасно спавнить айтемы и мобайлы в мире через прокси, а не через сервер
Частично сделан. Всего будет 3 механизма:
1) Статический (Администратор сервера выделяет большой пул серийников, пул задается в конфиге перехватчика)
2) Серверный (Сервер, по запросу, предоставляет маленькие пулы серийников, пулы получаются через расширение протокола)
3) Проксируемый (Перехватчик выдает незанятые серийники, если сервер их занимает, начинается трансляция серийников из серверный в клиентские и обратно)
Пока сделан механизм 1.

7) Получение плагинов с сервера и инкапсуляция своего протокола внутрь УО'шного для управления системой с сервера. (Собственно это была основная цель данного проекта. Дать возможность держателям серверов "дописывать" поведение клиента в зависимости от своих пожеланий)
8) Механизм временных событий (стандартные средства тут не работают).
9) Механизм синхронизации с другими потоками клиента (необходимо для реализации перехвата API в плагинах)
Синхронизация сделана через 2-х ступенчатую систему изменения Interlocked переменных.

999) Оптимизация протокола УО для большей эффективности передачи данных и снижению нагрузки на канал.

Ну и вытащим следующие маилстоуны:

1) Распаковка/Запаковка zlib'ом пакета с Гампами (и других пакетов, если такие будут)
Сама поддержка zlib уже есть, надо только продумать - что делать с гампами
2) Доработка утилитарных классов. В частности для чтения/записи пакетов.
3) Получение плагинов с сервера и инкапсуляция своего протокола внутрь УО'шного для управления системой с сервера. (Собственно это была основная цель данного проекта. Дать возможность держателям серверов "дописывать" поведение клиента в зависимости от своих пожеланий)
4) Механизм временных событий (стандартные средства тут не работают).
999) Оптимизация протокола УО для большей эффективности передачи данных и снижению нагрузки на канал.


Да, пожелания, предложения, плюшки?

Сейчас есть возможность попросить то, что хотелось-бы видеть вам... Что-бы я на более или менее реальных задачах обкатал систему плагинов. Сразу скажу, это должна быть не автомотизация клиента, так как макро языков и так до одного места, а именно что-то что облегчит вам жизнь как программистам серверной части шарда.


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


********

Mammy's hero
Сообщений: 1.227
Регистрация: 26.5.2009
Группа: Пользователи
Наличность: 0
Из: Украина , Одесса
Пользователь №: 11.891
Возраст: 33



Прикрепил тему , давно пора было это сделать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 13.2.2011, 23:08
Сообщение #53


*********

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



Решил пока отвлечься от разработки ядра и сделать все-таки динамическую статику. Сейчас этому уже ничего не мешает. Последнее что было - это централизованный диспетчер перехвата API, но я уже придумал как его сделать.


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


*********

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



Если вдруг кто-то что-то пишет (нет, ну а вдруг), то пока - не надо. Я сейчас изменяю механизм взаимодействия плагинов с ядром. Ввожу более подробный механизм инициализации.


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


*********

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



Столкнулся с интересной проблемой. Если в основном dll (ProtocolExtender.dll) перехватываю MapViewOfFile - все нормально. Если-же это выношу в плагин - клиент падает на этапе выбора Чара. Причем, судя по характеру падения - падает не основной поток, а какой-то вспомогательный... Бред какой-то. Причем я точно знаю, что до этого он раз 20 этот MapViewOfFile вызвал и перехватчик отработал.

Сообщение отредактировал Warstone - 29.3.2011, 17:16


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


*********

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



Цитата(Warstone @ 29.3.2011, 17:15) *

Столкнулся с интересной проблемой. Если в основном dll (ProtocolExtender.dll) перехватываю MapViewOfFile - все нормально. Если-же это выношу в плагин - клиент падает на этапе выбора Чара. Причем, судя по характеру падения - падает не основной поток, а какой-то вспомогательный... Бред какой-то. Причем я точно знаю, что до этого он раз 20 этот MapViewOfFile вызвал и перехватчик отработал.
Может чето перенамудрил и падение происходит из-за конфликтов доступа? Самая частая и достаточно противная ошибка при таких родах действий )


--------------------
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
сообщение 29.3.2011, 21:55
Сообщение #57


*********

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



Цитата(StaticZ @ 29.3.2011, 18:52) *

Может чето перенамудрил и падение происходит из-за конфликтов доступа? Самая частая и достаточно противная ошибка при таких родах действий )
Дело в том, что я эту функцию не перехватываю в ядре (ProtocolExtender), только в плагине. Код инициализации перехвата в ядре и в плагине - одинаков. Работает в одно и то-же время - во время инъекции основной dll. То есть в это время потоки клиента еще не работают... Я вообще друг другу мешать не могу. Единственно что - только если код друг на друга ложится, но это бред-же.


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


*********

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



Удивительное рядом... LoadLibrary в инъектируемой dll не приводит к появлению этой dll в списке dll'ек процесса... Я где-то <вырезано анти-матом>, наверно, но это факт. Кстати, из-за этого не работает дебаг от Дельфи, скорее всего. Значит надо переделывать механизм плагинов. Очень интересное поведение... Я сумел скрыть dll, но не знаю почему. Я-же не делал свою загрузку dll...


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


*********

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



Сделал перехват Entry Point для клиента и теперь инициализируюсь там. Подключаемые плагины появились в списке модулей. Ошибка осталась. Я снова в тупике.


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


*********

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



Переделал проект под XE, ошибка осталась. Почитал про DllMain так говорится что внутри нее нельзя использовать LoadLibrary. Переделал на вызов процедуры из удаленного потока (нафиг переписав ассемблерный код). Проблема осталась. В списке модулей dll видно... даже оба... Ошибка - осталась. Снова в тупике. А... И снова дебаггер дельфи в упор не хочет дебажить такой метод работы. Скоро рассержусь и буду грузить клиент руками в купе с длл... Тогда client.exe вообще в списке процессов не будет...


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

19 страниц V < 1 2 3 4 5 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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