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

19 страниц V « < 3 4 5 6 7 > »   
Ответить в эту темуОткрыть новую тему
> Uoext. Расширяя Возможности Клиента, We do what EA can't.
Warstone
сообщение 1.5.2011, 22:10
Сообщение #81


*********

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



Это скрин обычного шарда, практически любого, просто в клиент подключена UOExt и плагинчик DynStatic.
Если коротко, то это технический билд. Там когда бегаешь - статика перед тобой появляется, а после тебя - исчезает.


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


*********

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



Переделал заголовочный текст. Как вам такой вариант, что подправить/изменить:

UOExt - Ultima Online protocol Extender

Данная программа позволяет вам добавить еще один уровень абстракции в связке клиент - сервер для более эффективного управления как ресурсами так и самим клиентом.

Данная программа выполнена в виде dll, которая подключается к клиенту во время запуска (клиента). Она запускает в адресном пространстве клиента еще один "прокси-сервер" и перенаправляет весь протокол через себя. В отличие от других программ того-же класса, которые перехватывают recv/send, прокси сервер работает в отдельном потоке, что положительно сказывается на плавности картинки клиента, однако налагает дополнительные требования к программисту. В частности: Если прокси-сервер, по приходу какого-то пакета должен сделать серьезную обработку этого пакета, то клиент все-еще может сделать несколько шагов, до того, как переполнится локальный буфер действий клиента и он встанет (эффект потери соединения с сервером). Для игрока - это не большое время, но для программы - это миллиарды тактов.
Побочный эффект данного подхода состоит в том, что вам больше не надо следить за тем, является-ли ваш клиент шифрованным, так как программа автоматически расшифрует протокол, если сервер не принимает зашифрованный протокол.

Так как данная программа выполняется в адресном пространстве клиента, ей так-же доступны любые данные клиента. Более того, перехват API распространяется и на клиент (что и использовано в плагине DynStatic, например). Поэтому вы имеете все данные клиента и можете производить относительно долгие вычисления без "фризов" клиента.

Что можно сделать с помощью этой программы:

*) Оптимизация протокола и клиента.
- Перенос части расчетов анимации на сторону клиента. (Например, при касте заклинаний - спец. эффекты можно перенести на сторону клиента, если они не влияют на игровое положение)
- Оптимизация протокола, передаваемого с сервера на прокси-сервер (то есть через сеть) и, таким образом, оптимизация загрузки сервера.

*) Работа с ресурсами клиента.
- Динамическое изменение карты, статики (DynStatic) и любых других параметров клиента не выходя из игры.

*) Еще много чего, просто я не придумал.

Сам исходный код данной программы доступен по адресу: http://code.google.com/p/uo-ext/ и имеет лицензию GPL. Однако плагины, написанные вами, являются самостоятельным продуктом (так-же dll) и, насколько я понимаю, могут не попадать под лицензию GPL. Если это не так, и тут есть кто-нибудь, кто разбирается в лицензиях - свяжитесь со мной, пожалуйста, для консультаций по лицензиям.

Исходный код программы написан на Object Pascal, однако плагины могут быть написаны на любом языке (соглашение о вызовах stdcall или, в терминах Си это должно быть, WINAPI соглашение).

Сообщение отредактировал Warstone - 3.5.2011, 9:51


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


********

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



Шикарно , но видимо многие пока просто не знают как на это ответить.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 10.5.2011, 22:50
Сообщение #84


*********

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



В следующем коммите будет новая фишка:
Добавлена новая директива компиляции: RUNUO_API.
Если ее включить при компиляции, то UOExt.dll будет экспортировать несколько новых функций (вместо одной CoreInitialization):

Две макро функции для облегчения запуска клиента:
function RunUOReg: Cardinal; stdcall;
Запускает client.exe, прописанный в реестре (если реестр пуст, то не запускает ничего) с подключенной UOExt.dll. Возвращает ProcessId нового процесса.

function RunUOA(AExecutablePath: PAnsiChar): Cardinal; stdcall;
Запускает выполняемый файл AExecutablePath с подключенной UOExt.dll. Возвращает ProcessId нового процесса.

Если-же этого мало (допустим надо подключать еще что-то и вообще - не известно что там будет), то процесс запуска разбит на несколько этапов:

function PrepareToRunUO: Boolean; stdcall;
Подготавливает текущий процесс к возможности запуска дочернего процесса с возможностью подключения UOExt.dll и любых других dll. Грубо говоря, эта процедура добавляет Debug привилегии к процессу. На системах с включенным UAC это приводит к появлению запроса об администраторских правах.

function StartSuspendedA(AExecutablePath: PAnsiChar; var AProcInfo: PROCESS_INFORMATION): Boolean; stdcall;
Запуск AExecutablePath бинарного файла в режиме останова. То есть бинарный файл запускается и тут-же останавливается. (Иногда не выполнив ни одной инструкции, но такое поведение не гарантируется)

function InjectThisDll(ASuspendedProcess:THandle): Boolean; stdcall;
Инъекция текущей (UOExt.dll) dll в процесс с хендлом ASuspendedProcess. Для этого нужны привилегии дебага. Фактически это макрос над следующей процедурой.

function InjectDllA(ASuspendedProcess:THandle; ADllPath, AInitProcedure: PAnsiChar): Boolean; stdcall;
Инъекция любой dll, расположенной в ADllPath в процесс с хендлом ASuspendedProcess и запуск в нем AInitProcedure из ниъектируемой dll. Параметров у запускаемой процедуры нету. Оммитить эту процедуру нельзя. (*)

function ResumeLoading(AThreadHandle: THandle): Boolean; stdcall;
Размораживание основного потока приложения и запуск дальнейшей загрузки приложения.

(*) Вообще говоря многие Горе-Отаку скажут что этого не надо, так как есть DllMain. Однако, если почитать MSDN, то там черным по белому сказано, что в DllMain при DLL_PROCESS_ATTACH можно делать далеко не все. Например нельзя грузить другие dll, так как еще не все dll из основного ехе инициализированны и это может привести как зацикливанию загрузки dll или Дедлоку загрузки. Для избежания этого и был сделан этот механизм.


Вообще, после этого, можно будет запускать клиент через команду:
rundll32.exe UOExt.dll RunUOReg

W вариации функций пока не планируются, но если кому-то надо, то скажите - сделаю.

Собственно 14-я ревизия:
Код
Core:
[ADD] RUNUO_API compile option. If set, UOExt.dll will hold UO start procedures
for easier integration in other UO launchers.
[ADD] Begin of server side plug-ins loading.
[FIX] Serials was broken.


15-я ревизия. Добавлены W версии процедур.

Сообщение отредактировал Warstone - 11.5.2011, 13:57


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


*********

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



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

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


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


*********

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



Слушайте, а кто-нибудь вообще думал использовать UOExt в своих проектах? Или я тут сам для себя пока-что делаю?


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


******

Expert
Сообщений: 793
Регистрация: 5.2.2006
Группа: Пользователи
Наличность: 3004
Пользователь №: 5.032



Я думаю желающих много. Лично меня интересует возможность блокировки сторонних программ.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 15.5.2011, 0:47
Сообщение #88


*********

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



Простейший метод - поиск по названию/размеру/сигнатурам.

Если я правильно понимаю то, что вам надо: скан процессов и сообщение "куда надо".
Скан делается в отдельном потоке раз в н минут или по запросу. Потом заполняете структуры памяти результатами и просите синхронизироваться с потоком прокси, передав эти структуры. Грубо говоря - вам нужно:
1) Описать процедуру типа TSyncEvent, которая будет выполняться в потоке прокси по запросу потока-сканера.
2) При старте плагина вызвать RegisterSyncEventHandler, для регистрации процедуры из п1 как "отвечающую за синхронизацию".
3) Описать дополнительные пакеты протокола, так как вам как-то надо посылать результаты серверу, через RegisterPacketType
4) Как только поток-сканер отработал - вызывать AskSyncEvent. Сейчас уже не помню зачем там InterlockedValue, можно посмотреть в коде. ИМХО - это для того, чтобы понимать сколько раз вызвана эта процедура до срабатывания события синхронизации.

* Внутри процедуры из п1 и потока-сканера пользоваться критическими секциями для предотвращения одновременного доступа к разделяемой памяти разными потоками.
* Возможно зарегистрировать обработчик своего пакета через RegisterPacketHandler, для реализации сканирования по запросу сервера.


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


*********

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



Цитата(Warstone @ 14.5.2011, 22:10) *

Слушайте, а кто-нибудь вообще думал использовать UOExt в своих проектах? Или я тут сам для себя пока-что делаю?

Я думал...
* Ориентировался правда на работу со статикой и мапой, но не насколько я понял с этим не срослось... а жаль, тема былабы полезная....
* ОТсюда надеялся на динамическое изменение содержимого радаркола (была такая задумка чтобы качество радара зависило от скила картографии, аля как в эсхалоне)...
* Спихнуть львиную часть трудов LOS с сервера на клиенты
* Дополнительная защита и валидация (для запрета мультиводства и использования нескольких акков и стороних программ, кроме разора)

Ну и приятные мелочи:
* Уменьшение трафика - сжатие, распаковка, частичная обработка со стороны клиента...
* Реализация каким-то образом через одно место динамичный гампов (есть задумки например для мини игр).

Но если честно сильно вдаваться в разработку не оч хочеться... хватает дел с сервером, сентрадом+, фидлером+, да и еще все собираюсь клиент потянуть....


--------------------
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Doberman
сообщение 15.5.2011, 1:23
Сообщение #90


******

Expert
Сообщений: 793
Регистрация: 5.2.2006
Группа: Пользователи
Наличность: 3004
Пользователь №: 5.032



Эээ (IMG:style_emoticons/default/blink.gif) Не хочу обидеть или показаться не вежливым, но я, мягко говоря, мало понял из выше сказанного.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 15.5.2011, 1:37
Сообщение #91


*********

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



Цитата(StaticZ @ 15.5.2011, 2:22) *

Я думал...
* Ориентировался правда на работу со статикой и мапой, но не насколько я понял с этим не срослось... а жаль, тема былабы полезная....
* ОТсюда надеялся на динамическое изменение содержимого радаркола (была такая задумка чтобы качество радара зависило от скила картографии, аля как в эсхалоне)...
* Спихнуть львиную часть трудов LOS с сервера на клиенты
* Дополнительная защита и валидация (для запрета мультиводства и использования нескольких акков и стороних программ, кроме разора)

Ну и приятные мелочи:
* Уменьшение трафика - сжатие, распаковка, частичная обработка со стороны клиента...
* Реализация каким-то образом через одно место динамичный гампов (есть задумки например для мини игр).

Но если честно сильно вдаваться в разработку не оч хочеться... хватает дел с сервером, сентрадом+, фидлером+, да и еще все собираюсь клиент потянуть....

1) Почему... Все срастается. Просто это отдельные проекты. Более того... 2-й маилстоун (насчет посылки кастом пакетов ЗА оригинальными) - растет именно из динамической статики.
2) А вот тут пока не представляю даже как. Так как радарколор, если мы говорим о чистом радарколоре, это набор данных, а не метод их показа. Если со статикой методом можно регулировать через пакеты, то с радарколором через пакеты не регулируется ничего. Тут 2 варианта:
а) При передвижении перепосылать весь видимый на радаре набор... Извините, качалка сдохнет... Пусть и на локалхосте... Это в, порядка 100 раз, больше чем перегонять видимый набор тайлов на каждое движение, хотя у меня сейчас это работает не так.
б) Изменять отрисовку радара на экран. Тут надо заниматься дизассемблером и прочими страшными вещами, от чего я, пока-что, бегу как от не знаю чего и... получается... В частности динамическая статики может работать (с некоторыми изменениями, а может и не надо будет ничего менять) и на Iris2.
3) Насчет LOS - легко... Но надо смотреть возможности чита.
4) Ну сейчас и разор не запускается )) Хотя это более общий случай от того, что предложил Добер.
5) Это у меня самого было в голове. Там может быть все не просто.
6) Тут можно работу с гампами оставить на клиенте... Ну частичную. Если, опять-таки, не лезть в дизасм.

Цитата(Doberman @ 15.5.2011, 2:23) *

Эээ (IMG:style_emoticons/default/blink.gif) Не хочу обидеть или показаться не вежливым, но я, мягко говоря, мало понял из выше сказанного.
Давай пофантазируем... Как-бы ты решал эту задачу (поиск левого софта)?


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


*********

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



Цитата(Warstone @ 15.5.2011, 2:37) *

1) Почему... Все срастается. Просто это отдельные проекты. Более того... 2-й маилстоун (насчет посылки кастом пакетов ЗА оригинальными) - растет именно из динамической статики.
2) А вот тут пока не представляю даже как. Так как радарколор, если мы говорим о чистом радарколоре, это набор данных, а не метод их показа. Если со статикой методом можно регулировать через пакеты, то с радарколором через пакеты не регулируется ничего. Тут 2 варианта:
а) При передвижении перепосылать весь видимый на радаре набор... Извините, качалка сдохнет... Пусть и на локалхосте... Это в, порядка 100 раз, больше чем перегонять видимый набор тайлов на каждое движение, хотя у меня сейчас это работает не так.
б) Изменять отрисовку радара на экран. Тут надо заниматься дизассемблером и прочими страшными вещами, от чего я, пока-что, бегу как от не знаю чего и... получается... В частности динамическая статики может работать (с некоторыми изменениями, а может и не надо будет ничего менять) и на Iris2.
3) Насчет LOS - легко... Но надо смотреть возможности чита.
4) Ну сейчас и разор не запускается )) Хотя это более общий случай от того, что предложил Добер.
5) Это у меня самого было в голове. Там может быть все не просто.
6) Тут можно работу с гампами оставить на клиенте... Ну частичную. Если, опять-таки, не лезть в дизасм.


1-2) Я про мулы - ты вначале толкал тему о том чтобы перехватывать права доступа к мулам и писать/менять их налету, после чего какимто раком вызывать перерисовку экрана... Эта тема меня пугала из-за крайней вычурности, но в тоже время и восхищала.... Но позже насколько я понял ты отказался от этого и ушел к простой подмене статики динамикой с локалхоста... Вообщем - то с задачей ты с одной стороны справился, с другой вышло не совсем то (отличия в работе клиента с статикой из мулов и пакетов - тултипы и круг прозрачности например)... Конечно может и мелочи, но я на ето и нацеливался например чтобы делать секретные двери статикой, чтобы игроки не могли их так легко спалить ктрл+шифт или кругом прозрачности... Ну и что касается радаркола, я думал там скорее всего можно будет приминить тотже алгоритм... с ним проще скилл не так часто меняется....
3) Естественно, но тем не менее ресурсы реально разгрузило... считать качество лос для куевой тучи мобайлов та еще проблема... особено если считать качественно...
4) Слышал, хотя если честно не понимаю как вы до такого дошли, ведь Uoext общается с клиентом только по локалхосту насколько я понял.. - какая разница разору конектится к локалхосту или к серву???
6) эх дизасм... хоть ктонить расковырял где прописан лимит звуков....

Цитата(Warstone @ 15.5.2011, 2:37) *

Давай пофантазируем... Как-бы ты решал эту задачу (поиск левого софта)?
А че там фантазировать??? проверяем процесы запустившие процесс клиента, ну а дальше пользуемся извращеным перекрептованым протоколом для безопасности


--------------------
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 15.5.2011, 6:45
Сообщение #93


**********

Группа: Администраторы
Наличность: 1
Пользователь №: 1.833



Цитата(StaticZ @ 15.5.2011, 3:09) *

А че там фантазировать??? проверяем процесы запустившие процесс клиента, ну а дальше пользуемся извращеным перекрептованым протоколом для безопасности

Т.е. если процесс после запуска выгружается - то и проверять нечего, следовательно все чисто.

К слову - запускать процесс - далеко не единственный способ подключить "нехорошее ПО" к клиенту: когда-то популярные лаунчеры пожалуй себя уже изжили. Можно сваять программку которая будет инжектить дллку в запускаемый кем угодно процесс. Будем защищаться от инжектов? - Наткнемся на легитные инжекты, тот же фрапс, добавим исключение на фрапс, но забудим про сандбокси - забаним пол сервера.. В то время как другие пол сервера будет ботить просто прописав библиотеку бота в таблицу импорта клиента..

Касательно криптованности-перекриптованности - на форуме Yoko Injection многие разы была доказана несостоятельность этого подхода - по-сути это не защита, посмотрите как перехватывает трафик тот же ТЕОТ - уже после расшифровки клиентом, и что в таком случае даст ваше шифрование?

Кстати да, по-факту - то, что вы предлагаете не защищает от методов работы ТЕОТ'а. Т.е. я говорю не о программах которых можно было бы теоретически сваять, а уже о конкретике которой можно пользоваться в предлагаемых вами условиях.

PS: Сорри если сморозил где-то глупость, прикладное программирование - не совсем мой профиль.


--------------------
Telegram: @tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 15.5.2011, 8:49
Сообщение #94


*********

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



Цитата(StaticZ @ 15.5.2011, 3:09) *

1-2) Я про мулы - ты вначале толкал тему о том чтобы перехватывать права доступа к мулам и писать/менять их налету, после чего какимто раком вызывать перерисовку экрана... Эта тема меня пугала из-за крайней вычурности, но в тоже время и восхищала.... Но позже насколько я понял ты отказался от этого и ушел к простой подмене статики динамикой с локалхоста... Вообщем - то с задачей ты с одной стороны справился, с другой вышло не совсем то (отличия в работе клиента с статикой из мулов и пакетов - тултипы и круг прозрачности например)... Конечно может и мелочи, но я на ето и нацеливался например чтобы делать секретные двери статикой, чтобы игроки не могли их так легко спалить ктрл+шифт или кругом прозрачности... Ну и что касается радаркола, я думал там скорее всего можно будет приминить тотже алгоритм... с ним проще скилл не так часто меняется....
3) Естественно, но тем не менее ресурсы реально разгрузило... считать качество лос для куевой тучи мобайлов та еще проблема... особено если считать качественно...
4) Слышал, хотя если честно не понимаю как вы до такого дошли, ведь Uoext общается с клиентом только по локалхосту насколько я понял.. - какая разница разору конектится к локалхосту или к серву???
6) эх дизасм... хоть ктонить расковырял где прописан лимит звуков....

А че там фантазировать??? проверяем процесы запустившие процесс клиента, ну а дальше пользуемся извращеным перекрептованым протоколом для безопасности

1-2) По поводу перерисовки - есть еще одна задумка через 2-йной телепорт, но там могут быть большие лаги из-за этого. Что-бы не мерцал экран - вырубать отрисовку. Но это, ИМХО, не выход, так как лаги-то будут. Идея замены статики динамикой - более... перспективный ход. А насчет отличий - какие они?
Тултипы, круг прозрачности, а еще? Мне просто надо что-бы понимать - куда смотреть. И если тултипы можно эмулировать, то вот с кругом прозрачности - пока не понятно.
4) А все просто. Мне надо грузиться до ехе, но в процессе ехе. Поэтому нужен свой "запускатор". Возможно, будет своя версия для Разора, где просто будет модификация EntryPoint ехе и дописывания себя в конец.
6) Ага... Или лимит скиллов.

Цитата(Destruction @ 15.5.2011, 7:45) *

Т.е. если процесс после запуска выгружается - то и проверять нечего, следовательно все чисто.

К слову - запускать процесс - далеко не единственный способ подключить "нехорошее ПО" к клиенту: когда-то популярные лаунчеры пожалуй себя уже изжили. Можно сваять программку которая будет инжектить дллку в запускаемый кем угодно процесс. Будем защищаться от инжектов? - Наткнемся на легитные инжекты, тот же фрапс, добавим исключение на фрапс, но забудим про сандбокси - забаним пол сервера.. В то время как другие пол сервера будет ботить просто прописав библиотеку бота в таблицу импорта клиента..

Касательно криптованности-перекриптованности - на форуме Yoko Injection многие разы была доказана несостоятельность этого подхода - по-сути это не защита, посмотрите как перехватывает трафик тот же ТЕОТ - уже после расшифровки клиентом, и что в таком случае даст ваше шифрование?

Кстати да, по-факту - то, что вы предлагаете не защищает от методов работы ТЕОТ'а. Т.е. я говорю не о программах которых можно было бы теоретически сваять, а уже о конкретике которой можно пользоваться в предлагаемых вами условиях.

PS: Сорри если сморозил где-то глупость, прикладное программирование - не совсем мой профиль.
Фраза "сигнатуры" вам ни о чем не говорит?
На самом деле всегда будет приложение, которое сможет обойти эту защиту. Всегда. Даже если идти по принципу Warden'а, когда проверяется целостность ехе, а не окружения.


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


*********

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



Конечно все можно всегда взломать, ни одно криптование и система защита в мире не даст вам 100% защиты.. Однако, какой бы дебильной она не была посчитайте число игроков которые МОГУТ это сделать, теперь посчитайте число игроков которые это ЗАХОТЯТ сделать (т.е. те кто сталкнется с этой проблемой) теперь сравните это с числом игроков В МИРЕ, аналогично сравните например тех кто хотелибы изменить чтото в разоре или инжекте.... Еще масла в огонь подливает специфичность утилы, на общих порталах перетирание этой темы мало что даст... Криптование/перекриптование посути валидация того факта что на стороне клиента используется данная тулса (тут конечно опенсорс и плагиновость проекта являются с одной стороны минусом, но с другой стороны и плюсом т.к. позволяет каждому серверу сделать свою защиту). Теперь мы уже не можем влезть между сервером и проксей... ну можем конечно но это геморой адский.... Остается лищь проверять чтобы никто не влезал между проксей и клиентом....Запретив запускать клиент из под других процессов (так и работают 95% тулсов - инжекты разоры и тд) мы сразу же от них избавляемся... Конечно остается еще способ атаченья к тому или другому процессу, но тут уже все не просто, да и касается он уже больше самописных вещей....

Сообщение отредактировал StaticZ - 15.5.2011, 9:11


--------------------
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.5.2011, 13:22
Сообщение #96


*********

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



Проект опенсорсный, сам он GPL'ный, однако плагины на то и сделаны, что-бы сервера могли не открывать их часть кода. Более того, в зависимости от директив компиляции можно будет отключить загрузку плагинов с диска (она останется в отладочных целях) и потом простейшая проверка на md5 или crc самого ядра даст вам знать - менял-ли его кто-нибудь. Так что тут я не вижу особой проблемы. Если грубо - перебрал все модули процесса, зная названия плагинов - проверил что crc у них такой-же как и на сервере (то есть crc взял и отправил на сервер, а сервер уже решает) и... в общем-то... все. Да, это можно обойти (сам уже вижу 1-2 варианта), но и эти обходы можно закрыть... Короче не вижу проблемы в опен сорсе.


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


*********

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



Да проблемы нет, как и везде есть своим + и -.. Плюсы конечно перевешивают, но и минусы свои есть...

Минусы (для защиты)
1) Плагины сторонии дллки, можно их подменить или пересобрать ручками удалив не нужные модули или использовать измененную версию, в том числе добавив свои плагины (кстати учитывая низкоуровневое взаимодействие ламер может заспамить серв случайно или намерено пакетами)
2) Если делаются стандартные методы защиты, то любой <вырезано анти-матом> может заглянуть в сорсы и понять как устроенна защита.

Плюсы (для защиты)
1) Каждый может сделать индивидуальную систему защиты, что осложняет читинг, кто бы чтобы не говорил, но не так то много и не так уж просто найти тулсы написаные под конкретный шард...


--------------------
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Отправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Destruction
сообщение 15.5.2011, 13:44
Сообщение #98


**********

Группа: Администраторы
Наличность: 1
Пользователь №: 1.833



Warstone, я отвечал на пост StaticZ. Не вижу там ни слова про сигнатуры. Соответственно критика направлена на те способы защиты, которые предлагает он. Это наверное очень круто отвечать на ту часть сообщения, которая не написана.

По сигнатурам отвечу - хранение ПО попадающего под сигнатуру не должно противоречить правилам. Следовательно задача лишь скрыть факт запуска приложения попадающего под сигнатуру. Полагаю ты и сам знаешь с десяток способов это реализовать.

>> Да, это можно обойти (сам уже вижу 1-2 варианта), но и эти обходы можно закрыть...
На любой фикс можно найти еще десяток дырок. Например тот же плагин защиты который ищет запрещенный софт по сигнатурам.. Вероятно он будет выполняется в отдельном потоке? - Полагаю на данном этапе если я его просто приторможу - вся защита и отвалится. "Решение", к слову, - доступное любому игроку.

Противостояние защиты от ботов и непосредственно ботоводов - вечно. IMHO. UO сейчас не притягивает той массы людей, чтобы на самом деле было бы проблемой сделать "защиту". Только вот нету интереса в обсуждении защиты построенной на низкой популярности игры. Все равно что спорить на тему минусов и плюсов защиты в виде строчки в правилах "пожалуйста, не используйте бот-программы".


--------------------
Telegram: @tatikom
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Wap
сообщение 15.5.2011, 14:08
Сообщение #99


**********

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



Цитата(Warstone @ 14.5.2011, 19:10) *

Слушайте, а кто-нибудь вообще думал использовать UOExt в своих проектах? Или я тут сам для себя пока-что делаю?
Трудно сказать. Но интерес к проекту есть.


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


*********

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



Цитата(StaticZ @ 15.5.2011, 14:34) *

Да проблемы нет, как и везде есть своим + и -.. Плюсы конечно перевешивают, но и минусы свои есть...

Минусы (для защиты)
1) Плагины сторонии дллки, можно их подменить или пересобрать ручками удалив не нужные модули или использовать измененную версию, в том числе добавив свои плагины (кстати учитывая низкоуровневое взаимодействие ламер может заспамить серв случайно или намерено пакетами)
2) Если делаются стандартные методы защиты, то любой <вырезано анти-матом> может заглянуть в сорсы и понять как устроенна защита.

1) Довольно затруднительно, так как плагины прибывают (ну будут прибывать) с сервера и за то, какие плагины грузить - отвечает сервер. Соответственно можно так-же строить защиту. А насчет ламера - ну если человек и диод - это не лечится зачастую.
2) Никто не навязывает раскрывать код плагинов. Для этого это и сделано. Пишите свою защиту или покупайте у сторонних разработчиков. Воля ваша.

На самом деле минусы есть, согласен. То есть те 2 минуса, которые ты описал - они присутствуют, но не являются критическими.

Цитата(Destruction @ 15.5.2011, 14:44) *

Warstone, я отвечал на пост StaticZ. Не вижу там ни слова про сигнатуры. Соответственно критика направлена на те способы защиты, которые предлагает он. Это наверное очень круто отвечать на ту часть сообщения, которая не написана.

По сигнатурам отвечу - хранение ПО попадающего под сигнатуру не должно противоречить правилам. Следовательно задача лишь скрыть факт запуска приложения попадающего под сигнатуру. Полагаю ты и сам знаешь с десяток способов это реализовать.

>> Да, это можно обойти (сам уже вижу 1-2 варианта), но и эти обходы можно закрыть...
На любой фикс можно найти еще десяток дырок. Например тот же плагин защиты который ищет запрещенный софт по сигнатурам.. Вероятно он будет выполняется в отдельном потоке? - Полагаю на данном этапе если я его просто приторможу - вся защита и отвалится. "Решение", к слову, - доступное любому игроку.

Противостояние защиты от ботов и непосредственно ботоводов - вечно. IMHO. UO сейчас не притягивает той массы людей, чтобы на самом деле было бы проблемой сделать "защиту". Только вот нету интереса в обсуждении защиты построенной на низкой популярности игры. Все равно что спорить на тему минусов и плюсов защиты в виде строчки в правилах "пожалуйста, не используйте бот-программы".

1) Гм... Не просек, ну ладно.
2) Так храните - никто не запрещает. Не запускайте. Или запускайте, но не для этого шарда. Всегда можно задетектить воздействие на клиент. особенно если код детекта выполняется в АП самого клиента.
3) Поток ты притормозить не можешь. Не путай с процессом. Более того... Это опять-же можно контролировать с сервера периодически опрашивая поток-сканер через протокол.
4) Тут не спорю.


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

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

 

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