| 
		
	
	
	
	
	   Uoext. Расширяя Возможности Клиента, We do what EA can't.  | 
	 
	    
	  | 
	           | 
	 
   
	 
  
 
	
		| Warstone | 
		
			
			
				   1.11.2010, 12:09
			 
			
			
		 | 
	 
	
		
        	 
  
        		         
          		Группа: Модераторы Наличность: 0         		
        		Пользователь №: 10.905 
Возраст: 25
  
        		 
        	 
        	   
        | 
       
			
			UOExt - Ultima Online protocol ExtenderТекущая версия: 0.1.0-RC1 Данная программа позволяет вам добавить еще один уровень абстракции в связке клиент - сервер для более эффективного управления как ресурсами так и самим клиентом. Данная программа выполнена в виде dll, которая подключается к клиенту во время запуска (клиента). Она запускает в адресном пространстве клиента еще один "прокси-сервер" и перенаправляет весь протокол через себя. В отличие от других программ того-же класса, которые перехватывают recv/send, прокси сервер работает в отдельном потоке, что положительно сказывается на плавности картинки клиента, однако налагает дополнительные требования к программисту. В частности: Если прокси-сервер, по приходу какого-то пакета должен сделать серьезную обработку этого пакета, то клиент все-еще может сделать несколько шагов, до того, как переполнится локальный буфер действий клиента и он встанет (эффект потери соединения с сервером). Для игрока - это не большое время, но для программы - это миллиарды тактов. Побочный эффект данного подхода состоит в том, что вам больше не надо следить за тем, является-ли ваш клиент шифрованным, так как программа автоматически расшифрует протокол, если сервер не принимает зашифрованный протокол. Так как данная программа выполняется в адресном пространстве клиента, ей так-же доступны любые данные клиента. Более того, перехват API распространяется и на клиент. Поэтому вы имеете все данные клиента и можете производить относительно долгие вычисления без "фризов" клиента. Сам исходный код данной программы доступен по адресу:  http://code.google.com/p/uo-ext/ и имеет лицензию GPL. Однако плагины, написанные вами, являются самостоятельным продуктом (так-же dll) и, насколько я понимаю, могут не попадать под лицензию GPL. Если это не так, и тут есть кто-нибудь, кто разбирается в лицензиях - свяжитесь со мной, пожалуйста, для консультаций по лицензиям. Исходный код программы написан на Object Pascal, однако плагины могут быть написаны на любом языке (соглашение о вызовах stdcall или, в терминах Си это должно быть, WINAPI соглашение). История версий (с r53) 
r60 - UOExt.GUI: Убрано мерцание при частом обновлении картинки. - UOExt.GUI: Добавлен проект-тест для UOExt.gui.dll r57 - Добавлен проект UOExt.GUI. Это шкурка "по умолчанию". Нет поддержки UOExt. Сама картинка сделана командой сервера "Квинтэссенция". Все скопировано правильно!
  r56 - UOExt выгружается на старте клиента, если она не поддерживается сервером.
  r55 - Убран проект UOLoader из репозитория. Фактически, он не использовался в работе с тех пор, как заработало заражение ехе - Добавлена проверка на поддержку сервером UOExt в купе с передачей настроек. Аналог Razor'овского Negotiate features with server. - Поправлен баг с падением клиента при разрыве соединения во время игры. - В репозиторий добавился код для RunUO для поддержки UOExt
  r53 Первый релиз, относительно которого будет вестись история. Мини FAQ по работе с UOExt 
Начальная установкаUOExt поставляется в 2-х основных форматах: debug и release. Отличие их в том, что debug "выкидывает" консоль и пишет туда отладочные сообщения. release, же работает без дополнительного окна. На данный момент предпочтительный метод работы с  UOExt состоит в заражении выполняемого файла клиента игры UO вызовом  UOExt при запуске. Процесс заражения происходит так: Скопировать UOExt.dll в папку с клиентом, открыть командную строку (Пуск - Выполнить cmd.exe), перейти в папку с клиентом и выполнить следующую команду: Код %windir%\system32\rundll32.exe UOExt.dll,Infect32 client.exe Где client.exe - название выполняемого файла клиента УО. Так-же рекомендуется сохранить резервную копию, так как  UOExt пропишет себя в текущем exe и будет запускаться каждый раз при старте модифицированного клиента. После этой операции вы можете работать с клиентом, как раньше. Просто он будет загружать  UOExt. Поддерживаемые программыНа данный момент  UOExt умеет работать с клиентом с которого снято или не снято шифрование (авто определение факта снятия шифрования). Так-же  UOExt запускается с Razor. Тесты совместимости с другими сопутствующими программами не проводились. Механизм проверки сервера на работу с UOExtUOExt проверяет сервер на поддержку UOExt путем отсылки серверу пакета 0xEF с пустыми значениями. Если в ответ в течении 5 секунд не прилетит пакет 0x00, то считается что сервер не поддерживает UOExt. Содержание пакета можно почитать в комментариях в коде. Механизм расширения функционала путем написания плагиновБудет позже.  Roadmap 
 r53 (29.04.2012) - UOExt: Решение косяков с шифрованием.
 - UOExt: Очередь загрузки плагинов - UOExt: Взаимодействие между плагинами r53 (29.04.2012) - UOExt: PE_PROXYEND - добавить в параметры наличие коннекта до клиента и сервера, а так-же причину завершение прокси. - UOExt (фича): Поддержка старого шифрования (Которое основано на Pi... Это 2-е клиенты что-ли) Устарело - UOExt (фича): Если UOExt словило какой-то неизвестный пакет, то его надо записать в отдельный файл на диске.
 - UOExt (фича): Автоматическое чтение протокола зи запущенного ехе (только для 2д версий).
 - UOExt (фича): Если пришел неизвестный пакет с сервера (с клиента он придти не может ибо выше), то просто не пропускать его дальше. Заодно и сдампить. - UOExt (фича): В дебаг режиме пользуясь VEH уметь ловить ошибки и откатываться до вызова плагина. (с возможным продолжением работы, хотя этого скорее всего не будет) r54 (01.05.2012) - UOExt (фича): Ловить первый пакет с сервера и проверять его на "каноничность". Если он "каноничен", то UOExt не поддерживается этим сервером, если он специальный, то из него прочитать настройки для UOExt. r56 (01.05.2012) - UOExt (фича): Если сервер не поддерживает UOExt, то она выгружается из АП клиента, позволяя ему продолжать работать в штатном режиме. r57 (15.05.2012) - UOExt (фича): Добавить специальную dll'ку, которая будет заниматься визуализацией процесса клиенту.
 - UOExt (правка): Сделать проверку что на этапе инициализации IP/порт те-же что и на этапе коннекта самого клиента. - UOExt (правка): При заражении ставить метку о заражении. Это нужно для того, чтобы убрать возможность повторного заражения и/или перезаражать, если механизм заражения изменился.
 
  
			
			
  -------------------- 
Do. Or do not. There is no Try! © Master Joda, Dagobah, Star Wars: Episode V. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	
		   | 
		   | 
	 
 
	Ответов	 
	
		| Warstone | 
		
			
			
				   15.5.2011, 13:22
			 
			
			
		 | 
	 
	
		
        	 
  
        		         
          		Группа: Модераторы Наличность: 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. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| StaticZ | 
		
			
			
				   15.5.2011, 13:34
			 
			
			
		 | 
	 
	
		
        	 
  
        		         
  
        		Разработчик проекта "Квинтэссенция" 
        		Сообщений: 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... 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
	
		| Warstone | 
		
			
			
				   15.5.2011, 15:07
			 
			
			
		 | 
	 
	
		
        	 
  
        		         
          		Группа: Модераторы Наличность: 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. 
					
		 | 
	 
	
		| 
			
		 | 
		
			
			
			
         	
          | 
	 
	| 
	
	 | 
 
 
 
	Сообщений в этой теме 
	   Warstone   Uoext. Расширяя Возможности Клиента   1.11.2010, 12:09    Ozzy Osbourne    Надо надо :)
Сейчас анимации на весь экран приходи...   1.11.2010, 12:31     StaticZ   Конечно надо, только вот поддержка Razor всеже нуж...   1.11.2010, 13:37     d`ArcZeal   
Надо надо :)
Сейчас анимации на весь экран приход...   15.11.2010, 17:59    Ozzy Osbourne    ну разоры шмазоры это можно и потом прикрутить. по...   1.11.2010, 15:15    Warstone   Итак... Пройден этап первичного тестирования и выл...   13.11.2010, 2:22    wap   Потенциально штука для сферы неплоха в плане хотя ...   13.11.2010, 2:57    Warstone   На вопрос общаственности... Как делать систему пла...   13.11.2010, 14:33     StaticZ   
Серверные плагины скачиваются непосредственно с с...   13.11.2010, 15:58      Warstone   
Нужна система защиты иначе могут просто подменить...   14.11.2010, 0:50    Soteric   Оно вообще-то надо?
Нам надо хоть один завершенный...   13.11.2010, 20:41    Vizit0r   
UOExt или Ultima Online ® © (tm) Protocol Extende...   15.11.2010, 9:40     Warstone   
я обожаю изобретателей велосипедов. они натыкаютс...   15.11.2010, 10:21     StaticZ   
P.P.S. А название топика- то какое классное ...   15.11.2010, 17:44    Vizit0r   про P.P.S. - а EA оно просто не надо. вот и все. 
...   15.11.2010, 10:43     Warstone   
про P.P.S. - а EA оно просто не надо. вот и все. ...   15.11.2010, 12:46    Ozzy Osbourne    Работают отлично, с этим проблем нет. Но когда в м...   16.11.2010, 0:34    Warstone   А все просто... Так ты напрягаешь сервер рассчитыв...   16.11.2010, 0:35    GblPower   Полезная штука. Особенно для ПОЛа.
И вопрос, как о...   17.11.2010, 11:55     StaticZ   
Полезная штука. Особенно для ПОЛа.
И вопрос, как ...   17.11.2010, 13:02    Warstone   На самом деле - надо проверять... Надо знать как р...   17.11.2010, 13:04     Destruction   
На самом деле - надо проверять... Надо знать как ...   17.11.2010, 13:09    Warstone   Как сделать - я и так понимаю. Вопрос куда я попад...   17.11.2010, 18:47    Warstone   Итак... первая встраиваемая версия готова. Запуска...   12.12.2010, 0:17    Warstone   Некоторые люди сильно ругали меня за то, что не ви...   12.12.2010, 3:50    Warstone   Итак... Хотелось-бы немного рассказать об API и по...   12.12.2010, 23:49    Warstone   Да, ну и дальнейшие планы:
1) Переделать инициали...   13.12.2010, 0:01    wap   Потестил "демонстрационную" версию.
Запу...   22.12.2010, 17:39     Warstone   
Потестил "демонстрационную" версию.
Зап...   24.12.2010, 13:05    Ozzy Osbourne   А что поддержки более ранних версий клиента можно ...   23.12.2010, 1:50    Warstone   Только что получилось в ран-тайме объяснить что в ...   26.12.2010, 2:42    Warstone   Текущий код залит в транк. Код доступен тут: http:...   7.1.2011, 16:34     StaticZ   наконец-то!!, уже солидный проект с сайтом...   7.1.2011, 16:50    Warstone   Ну плагины действительно на чем угодно можно писат...   7.1.2011, 16:55     StaticZ   
Ну плагины действительно на чем угодно можно писа...   7.1.2011, 16:59    Warstone   Тут не понял.Пока не надо, но если очень интересно...   7.1.2011, 17:30    Warstone   Почистил код. 5-я ревизия должна автоматом собират...   10.1.2011, 3:04    Warstone   Волонтеров нету (внезапно).
Вопрос сообществу: Не...   15.1.2011, 4:29     StaticZ   
Волонтеров нету (внезапно).
Вопрос сообществу: Н...   15.1.2011, 5:13    Warstone   Когда я это говорил?
Да, но если у тебя версия до ...   15.1.2011, 15:23     StaticZ   
Когда я это говорил?"Волонтеров нету (внезап...   15.1.2011, 16:42    Warstone   А до этого фразу 5 дней назад про необходимость во...   15.1.2011, 17:49    wap   Что касается меня, я вроде уже отписывался(касаетс...   16.1.2011, 23:28    Warstone   Да.... насколько я понял тут 3 калеки (включая мен...   17.1.2011, 10:23    Warstone   Собственно новости:
В готовящейся версии:
- Фикс б...   30.1.2011, 5:36     wap   
Да, похоже что Шифрование это началось с 3-х клие...   1.2.2011, 20:56      StaticZ   
Что такое Blowfish и Twofish я лично не в курсе, ...   2.2.2011, 11:13    Warstone   Следующая ревизия. Детект шифрования клиента. Полн...   1.2.2011, 16:38    Warstone   http://code.google.com/p/uo-ext/source/bro...der/T...   1.2.2011, 23:21    Warstone   Поддержка шифрованного клиента есть. Надо потестит...   12.2.2011, 17:43    Warstone   Да, 10-я ревизия обновила транк (реинтеграция шифр...   12.2.2011, 18:10    Александр Needle™   Прикрепил тему , давно пора было это сделать.   13.2.2011, 18:45    Warstone   Решил пока отвлечься от разработки ядра и сделать ...   13.2.2011, 23:08    Warstone   Если вдруг кто-то что-то пишет (нет, ну а вдруг), ...   16.2.2011, 16:35    Warstone   Столкнулся с интересной проблемой. Если в основном...   29.3.2011, 17:15     StaticZ   
Столкнулся с интересной проблемой. Если в основно...   29.3.2011, 17:52      Warstone   
Может чето перенамудрил и падение происходит из-з...   29.3.2011, 21:55    Warstone   Удивительное рядом... LoadLibrary в инъектируемой ...   29.3.2011, 23:21    Warstone   Сделал перехват Entry Point для клиента и теперь и...   31.3.2011, 1:32    Warstone   Переделал проект под XE, ошибка осталась. Почитал ...   10.4.2011, 3:15    Warstone   Ошибка найдена. Сам и д и о т. Если коротко, то по...   10.4.2011, 5:35    Warstone   Залил 11-ю ревизию.
Список изменений:
All:
...   15.4.2011, 17:50     StaticZ   Еще один шажок на пути к революции остался позади....   15.4.2011, 20:47      Warstone   
Еще один шажок на пути к революции остался позади...   15.4.2011, 23:31    wap   Я вообще по-русски в программно-технических постах...   15.4.2011, 22:07    Warstone   Собрал черновой вариант динамической статики (снач...   16.4.2011, 2:01    Александр Needle™   Кашерно , как бы мне в этом покавырятся?   16.4.2011, 7:42    Warstone   http://code.google.com/p/uo-ext/
Там есть сорс и,...   16.4.2011, 11:02    Warstone   Нашел ошибку в ядре... [props не работает. Скорее ...   18.4.2011, 0:59    Александр Needle™   А я все никак выкачать не могу с сайта сорсы))   18.4.2011, 7:20    Warstone   Если не можешь - это хорошо... Но вообще надо пост...   18.4.2011, 10:21    Warstone   12-я ревизия. Баг починен.
Core:
[ADD...   18.4.2011, 19:19    Александр Needle™   Скачал , вроде как скомпилил , пока не могу судить...   19.4.2011, 14:14    Warstone   Ну ессно не можешь... Это ядро. В идеале, когда за...   19.4.2011, 23:36    Warstone   Плагин динамической статики умеет отслеживать пози...   21.4.2011, 23:57     StaticZ   
Плагин динамической статики умеет отслеживать поз...   22.4.2011, 0:47    Warstone   http://ruosi.org/packetguide/index.xml#bothC8
Мож...   22.4.2011, 1:19    Warstone   Еще один маленький шажок... Технически - плагин за...   24.4.2011, 0:44    Warstone   Гм... Меня тут просили выложить скрины... Выкладыв...   1.5.2011, 14:04    d`ArcZeal   А чего это скрин, не пойму.   1.5.2011, 21:34    Warstone   Это скрин обычного шарда, практически любого, прос...   1.5.2011, 22:10    Warstone   Переделал заголовочный текст. Как вам такой вариан...   3.5.2011, 9:50    Александр Needle™   Шикарно , но видимо многие пока просто не знают ка...   3.5.2011, 14:41    Warstone   В следующем коммите будет новая фишка:
Добавлена н...   10.5.2011, 22:50    Warstone   Следующие маилстоуны:
Ядро:
- Сделать загрузку пл...   12.5.2011, 14:32    Warstone   Слушайте, а кто-нибудь вообще думал использовать U...   14.5.2011, 21:10     StaticZ   
Слушайте, а кто-нибудь вообще думал использовать ...   15.5.2011, 1:22      Warstone   
Я думал... 
* Ориентировался правда на работу со ...   15.5.2011, 1:37       StaticZ   
1) Почему... Все срастается. Просто это отдельные...   15.5.2011, 2:09        Destruction   
А че там фантазировать??? проверяем процесы запус...   15.5.2011, 6:45         StaticZ   Конечно все можно всегда взломать, ни одно криптов...   15.5.2011, 9:09        Warstone   
1-2) Я про мулы - ты вначале толкал тему о том чт...   15.5.2011, 8:49    Doberman   Я думаю желающих много. Лично меня интересует возм...   14.5.2011, 21:59    Warstone   Простейший метод - поиск по названию/размеру/сигна...   15.5.2011, 0:47    Doberman   Эээ  :blink:  Не хочу обидеть или показаться не ве...   15.5.2011, 1:23    Destruction   Warstone, я отвечал на пост StaticZ. Не вижу там н...   15.5.2011, 13:44    wap   
Слушайте, а кто-нибудь вообще думал использовать ...   15.5.2011, 14:08 
	
 
	2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0) 
	Пользователей: 0  
 
        				  
  | 
 |