|
|
  |
Uoext. Расширяя Возможности Клиента, We do what EA can't. |
|
|
StaticZ |
24.4.2012, 22:48
|

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

|
Цитата(Warstone @ 24.4.2012, 23:10)  Собсно - этот баг и был починен )))) Все до него руки не доходили... Вердикт... Сейчас UOExt научилось работать с разором в режиме заражения ехе УОшки. Вроде-бы они друг другу не мешают... Сейчас соберу тестовый пример - как это все должно работать.
Ура, есть просьба - выложить потом готовую сборку на сайте в файлах, а то ставить дельфю еще не очень хочется )))) а почему именно на локалхосте??? и что за *.plg ??переименнованая *.dll или какоето особое извращение? ))) Так первая бага - крашит при попытке включения через разор с включением шифрования а без шифрования зайти сложновато... Можно както поменять привязку порта на 2583, а то 2593 занят шифрованным ))) по поводу бага нагнал, забыл скопировать dll'ки xDDD (так что странно что без шифрования краша нет)
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Warstone |
24.4.2012, 23:10
|

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

|
Цитата(StaticZ @ 24.4.2012, 23:48)  Ура, есть просьба - выложить потом готовую сборку на сайте в файлах, а то ставить дельфю еще не очень хочется )))) а почему именно на локалхосте???
и что за *.plg ??переименнованая *.dll или какоето особое извращение? )))
Так первая бага - крашит при попытке включения через разор с включением шифрования
а без шифрования зайти сложновато... Можно както поменять привязку порта на 2583, а то 2593 занят шифрованным )))
по поводу бага нагнал, забыл скопировать dll'ки xDDD (так что странно что без шифрования краша нет)
plg - да... Тупо переименованная dll. У Разора там 2 типа шифрования... И я ХЗ как эти галки работает. UOExt должно работать с любым типом. То есть ей наплевать в каком виде работают клиент и сервер. Она сама все перекодирует. Статикз, ты вроде-бы говорил что Разор может ловить пакет с сервера о фичах... Где-бы серверный код для этого дела посмотреть... Я-бы в этот пакет включение UOExt прописал... Тогда-бы сервер рулил UOExt. Ну и дальше там придумаю как координироваться с сервером... Инфариант отдельного обновляльщика - некрасиво, ибо с сервером все-равно "разговаривать" придется... Да, UOExt_dbg.dll - это та-же UOExt, только с консолькой... То есть если ее переименовать в UOExt.dll, то будет консолька )))
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
Warstone |
25.4.2012, 11:22
|

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

|
Цитата(StaticZ @ 25.4.2012, 12:13)  Вот ВОт я тебе об этом и говорил... а вообще с чего это все, он же не трогает их пакеты вродебы должен пересылать все что клиент шлет
Я посмотрел... Во-первых... Шифрование сервера прописано в самой UOExt, так как нету возможности задетектить это в рантайме. (Я тебе, кстати, нешифрованный сервер кидал). Во-вторых, обычно, при подключении, клиент шлет 2 пакета сразу. По второму я и определяю - шифруемся мы или нет (Первый - это версия клиента, откуда я и генерю ключи шифрования). Так вот... С разором оно... шлет толдько один пакет. А мне надо понять - оно или не оно, поэтому я жду 2-го... Это, скорее всего баг. Будет переделано. В-третьих, Если клиент не шифрованный, то UOExt не шифрует и сервер. Это бага, так-что буду править. В остатке - там есть куда тюнить шифрование... Скоро будет... Я надеюсь.
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
StaticZ |
25.4.2012, 11:43
|

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

|
Не знаю, разор ведь на 100% поддерживает игру на оси серверах а значит вольностей не делает... По поводу самого шифрования, думаю даже лучше это вшивать, чтобы не было соблазна поменять ))
ЗЫ сразу на будущее, хорошо былобы как-то контролировать загружаемые плагины, на предмет подмены, добавления новых или удаления существующих... Для этого хорошо былобы добавить в апи функцию получения инфы о загруженных плагинах, а также инфу о версии и сборки ядра )))
Во вторых щас только понял что в апи отсутствует возможность посылать пакеты на сервер uoExt ну и принимать их оттуда (есть только возможность посылки ппакетов через протокол уо на игровой сервер или в клиент)..
В третьих если я правильно понял, в апи нет возможности "глушить" пакеты (тоесть не пропускать их).
ЗЫ как доделаешь совместимость с разором займусь плагинами, если не против я бы добавил в вики примеры кода плагинов на С++ было бы полезно для не дельфистов...
ЗЗЫ а да если надо могу дать линк на бинарную библиотеку на си что занимается енкриптом ))
Сообщение отредактировал StaticZ - 25.4.2012, 11:44
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
25.4.2012, 11:55
|

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

|
Кстати а можно както перехватить набираемый текст в консоли в клиенте (ну при чате). Давно мучает идея написать плагин чтобы отрисовывал клиент в другом окне где былбы нормальный лог с фильтрами и edit для набора текста с возможностью перемещать курсор и выделять текст... вообщем как делают нормлаьные люди в современных играх, в принципе все не сложно, проблема именно в перехвате набираемого текста.. Можно былобы попробовать через пайпы, но мне нужен перехват только "чата", а не всего инпута...
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
25.4.2012, 12:33
|

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

|
Да если подумать еще не хватает события инциализации длл'ки в идеале вызываемого до начала загрузки ресурсов клиентом, но на крайняк можно и просто в произвольный момент при старте... (щас в голове родилась идея моего второго плагина EAE - Extendent Audio Engine, вот и накидываю набросок xD ) Цитата(Warstone @ 24.4.2012, 19:29)  Я тоже так думал. Поэтому и стал в лоадер вставляться... До этого я тупо "дочитывал" Login.cfg, ибо "что-бы совсем не трогать клиент".... А тут...
Кстати... Это значит что можно тупо его выкинуть из рантайма путем перепрочитывания клиента и распаковки его поверх в те секции, которые он уже получил... Можно убить различные фичи Разора.... Интересная картинка.
А можно убить фичу миникарты разора? )) ".. Position System" както так она там завется... Сообщение отредактировал StaticZ - 25.4.2012, 12:34
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
25.4.2012, 14:24
|

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

|
Кстати, пара вопросиков, по коду ShardSetup: 1) Откуда такие значения сериалов, если брать ранку то она используется диапазоны для мобайлов от 0х00000000 до 0x3FFFFFFF, а для предметов от 0х40000000 до 0x7FFFFFFF, значения выше 0х80000000 ранка вообще считает ошибочными, по причине использования знакового типа данных INT, соответственно если это нужно для подстройки под сервер, то значения немного не точны, если для отсутсвия конфликтов с сервером например для динамической статики то может попробовать значения за 0х80000000 или <вырезано анти-матом> клиент тоже их кушает как INT а не UINT ? 2) Полит коректнее сделать возможность прописывать как IP так и URL, а дальше сравнить их по маске и если это не IP то через GetAddrByHost преобразовать URL в IP. Мелочь а приятно, всетаки URL на то и нужен чтобы избавиться от зависимости реального адресса и в случае "переезда" сервера не пришлось всем патчить клиент.
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Warstone |
25.4.2012, 14:57
|

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

|
Цитата(StaticZ @ 25.4.2012, 12:43)  Не знаю, разор ведь на 100% поддерживает игру на оси серверах а значит вольностей не делает... По поводу самого шифрования, думаю даже лучше это вшивать, чтобы не было соблазна поменять )) Они могли проверить поведение и немного поменять его... Я примерно представляю куда копать. Цитата(StaticZ @ 25.4.2012, 12:43)  ЗЫ сразу на будущее, хорошо былобы как-то контролировать загружаемые плагины, на предмет подмены, добавления новых или удаления существующих... Для этого хорошо былобы добавить в апи функцию получения инфы о загруженных плагинах, а также инфу о версии и сборки ядра ))) Немного не так... Возможно позже напишу простенький аналог Warden'а для УО но исключительно как плагин. Цитата(StaticZ @ 25.4.2012, 12:43)  Во вторых щас только понял что в апи отсутствует возможность посылать пакеты на сервер uoExt ну и принимать их оттуда (есть только возможность посылки ппакетов через протокол уо на игровой сервер или в клиент).. Там юмор в чем... Можно послать пакет напрямую на сервер а можно нет... Если нет, то пакет будут хавать плагины после тебя. Единственно что надо сделать - давать возможность серверу указывать в какой последовательности грузить плагины. + еще сделать взаимодействие между плагинами. Цитата(StaticZ @ 25.4.2012, 12:43)  В третьих если я правильно понял, в апи нет возможности "глушить" пакеты (тоесть не пропускать их). Есть... Во время перехвата пакета там есть возврат Булевого значения... Вот если вернуть True - пакет погасится и не придет к следующий плагинам. Цитата(StaticZ @ 25.4.2012, 12:43)  ЗЫ как доделаешь совместимость с разором займусь плагинами, если не против я бы добавил в вики примеры кода плагинов на С++ было бы полезно для не дельфистов... ммм... Я поумаю над этим. )) Цитата(StaticZ @ 25.4.2012, 12:55)  Кстати а можно както перехватить набираемый текст в консоли в клиенте (ну при чате). Давно мучает идея написать плагин чтобы отрисовывал клиент в другом окне где былбы нормальный лог с фильтрами и edit для набора текста с возможностью перемещать курсор и выделять текст... вообщем как делают нормлаьные люди в современных играх, в принципе все не сложно, проблема именно в перехвате набираемого текста.. Можно былобы попробовать через пайпы, но мне нужен перехват только "чата", а не всего инпута...
Сложно... Пока - даже не заморачивайся. Цитата(StaticZ @ 25.4.2012, 13:33)  Да если подумать еще не хватает события инциализации длл'ки в идеале вызываемого до начала загрузки ресурсов клиентом, но на крайняк можно и просто в произвольный момент при старте... (щас в голове родилась идея моего второго плагина EAE - Extendent Audio Engine, вот и накидываю набросок xD ) Есть событие PE_INIT - оно запускается до запуска ехе. И есть событие PE_PROXYSTART - это клиент начал с сетью работать. Причем PE_PROXYSTART может придти 2 раза (это обычно так и происходит), так как клиент пересоздает подключение при смене логин сервера и геим сервера. Соотв. между первым и 2-м PE_PROXYSTART придет PE_PROXYEND. В теории так-же должен приходить PE_FREE, когда клиент закрывается, но это пока не гарантируется и, скорее всего, во время этого события коннект до сервера уже будет убит. Да, PE_PROXYEND так-же не гарантирует наличие коннекта до сервера (допустим сервер сам разорвал соединение). Это, кстати, надо переделать. Цитата(StaticZ @ 25.4.2012, 13:33)  А можно убить фичу миникарты разора? )) ".. Position System" както так она там завется... ммм... Так-же пока не трогаю... Наверно можно... Путем анализа секций, откуда пришел запрос и вычленения лоадера секций... Правда там хук будет убийственный, так как надо хучить чтение памяти ибо статика и прочее маппится в память. Дальнейшие планы: - UOExt: Решение косяков с шифрованием. - UOExt: Очередь загрузки плагинов - UOExt: Взаимодействие между плагинами - UOExt: PE_PROXYEND - добавить в параметры наличие коннекта до клиента и сервера, а так-же причину завершение прокси. - UOExt (фича): Поддержка старого шифрования (Которое основано на Pi... Это 2-е клиенты что-ли) - Plugins: Аналог Warden'а для UOExt (На клиент посылается пакет с dll'кой. Она проверяет секции и CRC... Как только проверено - отсылает серверу обратно шифрованный ответ), на основании правильности ответа сервер дисконнектит юзера. Как-то так. Цитата(StaticZ @ 25.4.2012, 15:24)  Кстати, пара вопросиков, по коду ShardSetup: 1) Откуда такие значения сериалов, если брать ранку то она используется диапазоны для мобайлов от 0х00000000 до 0x3FFFFFFF, а для предметов от 0х40000000 до 0x7FFFFFFF, значения выше 0х80000000 ранка вообще считает ошибочными, по причине использования знакового типа данных INT, соответственно если это нужно для подстройки под сервер, то значения немного не точны, если для отсутсвия конфликтов с сервером например для динамической статики то может попробовать значения за 0х80000000 или <вырезано анти-матом> клиент тоже их кушает как INT а не UINT ? 2) Полит коректнее сделать возможность прописывать как IP так и URL, а дальше сравнить их по маске и если это не IP то через GetAddrByHost преобразовать URL в IP. Мелочь а приятно, всетаки URL на то и нужен чтобы избавиться от зависимости реального адресса и в случае "переезда" сервера не пришлось всем патчить клиент. 1) Это пока вообще не работает. Если ты поставишь что-либо кроме ssmStatic - оно будет ругаться. 2) Я пока думаю... Возможно вообще это уйдет и будем кушать настройку с разора/login.cfg... Сделано это было что-бы не дать клиенту подключиться куда не надо (Нечто среднее между защитой моего творчества и гарантией что клиент будет ходить только на этот шард).
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
StaticZ |
25.4.2012, 15:46
|

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

|
Цитата(Warstone @ 25.4.2012, 15:57)  Немного не так... Возможно позже напишу простенький аналог Warden'а для УО но исключительно как плагин. Что есть Warden? А насчет плагина это я имел ввиду, имхо похорошему каждый сервер должен делать свою защиту, если сделать как фичу то любой сможет увидеть код и обойти... Так что плагин тут как раз и имел ввиду, дело в том что в плагине нельзя получить инфу о других загруженных плагинах... Цитата(Warstone @ 25.4.2012, 15:57)  Цитата(StaticZ @ 25.4.2012, 12:43) ЗЫ как доделаешь совместимость с разором займусь плагинами, если не против я бы добавил в вики примеры кода плагинов на С++ было бы полезно для не дельфистов...ммм... Я поумаю над этим. )) Ты наверное не очень понял, я у тебя спрашиваю разрешения добавить примеры для С++ (просто мне с подручнее на нем писать, всеравно буду разбираться так что могу и для вики пару примеров сделать) Цитата(Warstone @ 25.4.2012, 15:57)  Дальнейшие планы:
- UOExt: Решение косяков с шифрованием. - UOExt: Очередь загрузки плагинов - UOExt: Взаимодействие между плагинами - UOExt: PE_PROXYEND - добавить в параметры наличие коннекта до клиента и сервера, а так-же причину завершение прокси. - UOExt (фича): Поддержка старого шифрования (Которое основано на Pi... Это 2-е клиенты что-ли) Жду не дождусь первого пункта ))))))) Остальное тоже важно но не так критично для меня... Вообще конечно молодец, сильная штука .... Цитата(Warstone @ 25.4.2012, 15:57)  1) Это пока вообще не работает. Если ты поставишь что-либо кроме ssmStatic - оно будет ругаться. 2) Я пока думаю... Возможно вообще это уйдет и будем кушать настройку с разора/login.cfg... Сделано это было что-бы не дать клиенту подключиться куда не надо (Нечто среднее между защитой моего творчества и гарантией что клиент будет ходить только на этот шард). 1) а вообще для чего это планировалось использовать? 2) Да имхо не особо критично учить его работать с логином, всеравно эта штука требует приличного уровня владения компом, так что те кто ее будут использовать тем не составит труда перекомпелить.. Просто могут быть варианты, например сервер с динамическим ипом тут без URL не попользуешся особо ))
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Warstone |
25.4.2012, 16:19
|

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

|
Цитата(StaticZ @ 25.4.2012, 16:46)  Что есть Warden? А насчет плагина это я имел ввиду, имхо похорошему каждый сервер должен делать свою защиту, если сделать как фичу то любой сможет увидеть код и обойти... Warden - это анти-чит технология Близзарда для ВоВа. Основная идея: Во время игры с сервера прилетает специальный код, который клиент должен запустить. Этот код сканирует приложение в памяти, определяет что нету левых программ, что целостность не нарушена и т.д. По окончании сканирования код генерирует отчет, шифрует его и подписывает. Все это отсылается на сервер. Сервер-же ждет пока код не отработает на клиенте и или дисконнектит клиента, если что нашлось или ничего не делает. Загружаемый код меняется в зависимости от пользователя и положения звезд на небе... Вот как-то так. Я себе это вижу так... Есть плагин, который умеет загружать код с сервера по запросу, запускать его и передавать результаты обратно на сервер. Сам загружаемый код генерируется на сервере, в него прописываются клюи и прочая. Собственно сервер сам определяет надо-ли отключать клиента по результатом отработки кода. Цитата(StaticZ @ 25.4.2012, 16:46)  Так что плагин тут как раз и имел ввиду, дело в том что в плагине нельзя получить инфу о других загруженных плагинах... Да щас-с-с... А посмотреть список dll'ек и путем исключения? Цитата(StaticZ @ 25.4.2012, 16:46)  Ты наверное не очень понял, я у тебя спрашиваю разрешения добавить примеры для С++ (просто мне с подручнее на нем писать, всеравно буду разбираться так что могу и для вики пару примеров сделать) Пож-ста... Только не на C#. Очень тебя прошу. Просто потому что он под это не рассчитан. Цитата(StaticZ @ 25.4.2012, 16:46)  Жду не дождусь первого пункта ))))))) Остальное тоже важно но не так критично для меня... Вообще конечно молодец, сильная штука .... (IMG: style_emoticons/default/blush2.gif) Я просто хотел сделать динамические города. Цитата(StaticZ @ 25.4.2012, 16:46)  1) а вообще для чего это планировалось использовать? 2) Да имхо не особо критично учить его работать с логином, всеравно эта штука требует приличного уровня владения компом, так что те кто ее будут использовать тем не составит труда перекомпелить.. Просто могут быть варианты, например сервер с динамическим ипом тут без URL не попользуешся особо )) 1) Как-раз для работы со статикой на клиенте. Просто сейчас это гм... не работает... Задел на будущее. 2) Ну-у-у... Там переделать 15 минут на все, на самом деле... Просто прокинуть IP/порт сначала в слушающий поток, а потом и в проски поток. Пока будет IP, потом, как время будет - подумаю над этим.
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
StaticZ |
25.4.2012, 16:52
|

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

|
Цитата(Warstone @ 25.4.2012, 17:19)  Warden - это анти-чит технология Близзарда для ВоВа. Основная идея: Во время игры с сервера прилетает специальный код, который клиент должен запустить. Этот код сканирует приложение в памяти, определяет что нету левых программ, что целостность не нарушена и т.д. По окончании сканирования код генерирует отчет, шифрует его и подписывает. Все это отсылается на сервер. Сервер-же ждет пока код не отработает на клиенте и или дисконнектит клиента, если что нашлось или ничего не делает. Загружаемый код меняется в зависимости от пользователя и положения звезд на небе... Вот как-то так. Я себе это вижу так... Есть плагин, который умеет загружать код с сервера по запросу, запускать его и передавать результаты обратно на сервер. Сам загружаемый код генерируется на сервере, в него прописываются клюи и прочая. Собственно сервер сам определяет надо-ли отключать клиента по результатом отработки кода.
Звучит очень сильно, хотя уверен если увидеть код работы этого чудо найдутся умники что смогут обойти это без проблем, не так уж и сложно отправить отчет зная что хочет получить сервер и по какому алгоритму шифруются данные ))) Цитата(Warstone @ 25.4.2012, 17:19)  Да щас-с-с... А посмотреть список dll'ек и путем исключения? Непонял )) Цитата(Warstone @ 25.4.2012, 17:19)  Пож-ста... Только не на C#. Очень тебя прошу. Просто потому что он под это не рассчитан. А причем тут C# я же написал С++ это совсем другой язык, и скажу по секрету тоже не управляемый и очень похож на паскаль за вычетом пары нюансов. Цитата(Warstone @ 25.4.2012, 17:19)  (IMG: style_emoticons/default/blush2.gif) Я просто хотел сделать динамические города. Да выходит куда универсальнее и мощнее... Тут даже можно такой плагин забухать что всякие инжекты и пилоты будут отдыхать )) Цитата(Warstone @ 25.4.2012, 17:19)  2) Ну-у-у... Там переделать 15 минут на все, на самом деле... Просто прокинуть IP/порт сначала в слушающий поток, а потом и в проски поток. Пока будет IP, потом, как время будет - подумаю над этим. Поэтому и говорю что приятная мелочь, а для некоторых серверов может оказаться жизненно необходима.. А проблема на 10 строчек простого кода парсинга строки и вызова GetAddrByHost () )) ЗЫ там для серверной части uo-ext, что я писал, ничего не поменялось, нового не появилось? а то если надо - свистни сделаю/переделаю ))) ЗЗЫ еще одна моя наболевшая бредоватая идея - сделать автоматический логин, тоесть запустил клиент и сразу в игре без всякого ввода паролей, выбора серверов, персонажей и тд и тп... Бред конечно, но те кто занимается разработкой и по 100 раз за час пезаходит на сервер меня поймут ))) Впринципе это наверное можно сделать плагином через отправку форме событии клика, но может у тебя есть идеи получше и ниточки за которые можно дергать клиент???? ))) Сообщение отредактировал StaticZ - 25.4.2012, 16:53
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
Warstone |
25.4.2012, 17:21
|

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

|
Цитата(StaticZ @ 25.4.2012, 17:52)  Звучит очень сильно, хотя уверен если увидеть код работы этого чудо найдутся умники что смогут обойти это без проблем, не так уж и сложно отправить отчет зная что хочет получить сервер и по какому алгоритму шифруются данные ))) Ну у Близзарда пользуется мимкрирующий код с самоизменяемыми технологиями... ИМХО, в качестве "базового" - пойдет. Цитата(StaticZ @ 25.4.2012, 17:52)  Непонял )) Плагины - это dll, подключенные через LoadLibrary. Список подключенных модулей у любого процесса можно узнать. Методом исключения убираются "стандартные" dll и остаются только плагины... + еще можно у этих dll вызвать описатель плагинов. Он экспортится сейчас... Короче - собрать список плагинов довольно легко, а так как плагин может экспортить при опросе неограниченное количество мараметров по принципу ключ/значение, то вообще уже сейчас можно делаь взаимодействие между плагинами. Другое дело, что это неудобно. Цитата(StaticZ @ 25.4.2012, 17:52)  А причем тут C# я же написал С++ это совсем другой язык, и скажу по секрету тоже не управляемый и очень похож на паскаль за вычетом пары нюансов. Я вкурсе как-бы. Просто это не столько для тебя, сколько для последователей. Цитата(StaticZ @ 25.4.2012, 17:52)  Да выходит куда универсальнее и мощнее... Тут даже можно такой плагин забухать что всякие инжекты и пилоты будут отдыхать )) Ну не совсем... До Инжектов, Стелсов и, даже где-то, Изи я не дотягиваю по уровню сервиса, но вот по возможностия управления клиентом... Никто не мешает вклиниться в DirectDraw, допустим... Цитата(StaticZ @ 25.4.2012, 17:52)  Поэтому и говорю что приятная мелочь, а для некоторых серверов может оказаться жизненно необходима.. А проблема на 10 строчек простого кода парсинга строки и вызова GetAddrByHost () )) Да мне просто через себя надо переступить, что-бы все-таки отдать все... Просто с одной стороны стоит "а вдруг с этого можно поиметь бабло" и "Я это делал, а вы пришли на готовое"(Вятт - привет!), а с другой - УО столько мало, что надо помогать. Цитата(StaticZ @ 25.4.2012, 17:52)  ЗЫ там для серверной части uo-ext, что я писал, ничего не поменялось, нового не появилось? а то если надо - свистни сделаю/переделаю ))) Пока - нет, я просто работу с сервером пока отключил. там надо будет все-таки в сам протокол встраиваться. Цитата(StaticZ @ 25.4.2012, 17:52)  ЗЗЫ еще одна моя наболевшая бредоватая идея - сделать автоматический логин, тоесть запустил клиент и сразу в игре без всякого ввода паролей, выбора серверов, персонажей и тд и тп... Бред конечно, но те кто занимается разработкой и по 100 раз за час пезаходит на сервер меня поймут ))) Впринципе это наверное можно сделать плагином через отправку форме событии клика, но может у тебя есть идеи получше и ниточки за которые можно дергать клиент???? ))) Можно... Вообще... там надо ловить когда окно отрисуется (перехватить хендел окна - легко, а потом WM_PAINT на готовый DC) и проверяешь - есть-ли вход. Если есть - то просто начинаешь кликать по необходимым местам.
--------------------
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V.
|
|
|
|
StaticZ |
25.4.2012, 18:02
|

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

|
Цитата(Warstone @ 25.4.2012, 18:21)  Плагины - это dll, подключенные через LoadLibrary. Список подключенных модулей у любого процесса можно узнать. Методом исключения убираются "стандартные" dll и остаются только плагины... + еще можно у этих dll вызвать описатель плагинов. Он экспортится сейчас... Короче - собрать список плагинов довольно легко, а так как плагин может экспортить при опросе неограниченное количество мараметров по принципу ключ/значение, то вообще уже сейчас можно делаь взаимодействие между плагинами. Другое дело, что это неудобно. Спасибо я лучше код ядра изменю, имхо куда проще =)) Цитата(Warstone @ 25.4.2012, 18:21)  Ну не совсем... До Инжектов, Стелсов и, даже где-то, Изи я не дотягиваю по уровню сервиса, но вот по возможностия управления клиентом... Никто не мешает вклиниться в DirectDraw, допустим... Ну как посмотреть с одной стороны нет интерфейса и более серьезные требования к пользователю с другой стороны возможности неограниченные.. Ну я вообщем-то имел ввиду что на основе нее можно создать свой уоАссист с кучей возможностей))) Цитата(Warstone @ 25.4.2012, 18:21)  Да мне просто через себя надо переступить, что-бы все-таки отдать все... Просто с одной стороны стоит "а вдруг с этого можно поиметь бабло" и "Я это делал, а вы пришли на готовое"(Вятт - привет!), а с другой - УО столько мало, что надо помогать. Поиметь бабло с опенсорса сложновато по определению, тогда уж надо было код закрывать... Но тогда уж тебе придется делать интефейс в стиле разора, инжи иначе массовый пользователь не осилит такое.. ))) Цитата(Warstone @ 25.4.2012, 18:21)  Пока - нет, я просто работу с сервером пока отключил. там надо будет все-таки в сам протокол встраиваться. Всмысле? что куда встраивать? Хочешь использовать стандартный протокол УО ? смысл? тогда можно и плагином пишем пакет какойнить FF и дальше наш айди )) Цитата(Warstone @ 25.4.2012, 18:21)  Можно... Вообще... там надо ловить когда окно отрисуется (перехватить хендел окна - легко, а потом WM_PAINT на готовый DC) и проверяешь - есть-ли вход. Если есть - то просто начинаешь кликать по необходимым местам. Попробую сделать, как она наконец-то заработает )))))
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
StaticZ |
25.4.2012, 18:59
|

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

|
Цитата(Warstone @ 25.4.2012, 19:22)  Эм-м-м... СтатикЗ... А там все работает... Я тебе просто кидал UOExt с выключенным серверным шифрованием... По крайней мере на старый твой сервер (которая у меня копия), оно прекрасно заходит.
круто (IMG: style_emoticons/default/biggrin.gif) можешь тогда еше раз кинуть если не трудно на наш сервер с включенным и на 127.0.0.1:2583 с выключенным?
--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|
|
|
|
  |
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0
|
|