В общем-то КуТим говорил, что CR2 не обходится. Интересно проверить несовместимость версий ОС, которая якобы сильно мешает повсеместному внедрению CR2. Пока что-то не видно ни одного счастливого пользователя w2k, которого данная проблема интересует.
Юсс! Пожалуйста, еще раз распиши подробно что знаешь про несовместимость cr2 с разными вариантами win2k.
Крайний раз редактировалось MichaelRyazan; 25.07.2007 в 15:54.
хостинг этого форума оплачивается вашими кликами по рекламе
хостинг этого форума оплачивается вашими кликами по рекламе
Windows 2003 (серверная винда)
Не из-за этого конечно. Пока просто небыло насущной необходимости в этой защите а слухи о том что проблемы с ней случаются были. Вот и не заморачивался никто. Думаю со временем кол-во серверов с включенной защитой может увеличиться. Тем более, что кол-во W2K у клиентов падает.
ROSS_Slon
Поздравляю, ты изобрел PunkBuster. http://en.wikipedia.org/wiki/PunkBuster
Крайний раз редактировалось Baks; 25.07.2007 в 16:43.
...И от полученных знаний скончался на месте
(Продублировал пост из SFS Wizard)
По поводу непробиваемости checkruntime=2 и пр., да и вообще по поводу читов (не persistent-модификации свойств объектов ), предложение к QTim и всем заинтересованным: не нужно "ломать" объекты и думать про integrity-проверки файлов клиента на сервере. Есть более прямой способ.
Дано:
1. взаимодействие игрока с объектами окружения в игре обсчитываются на стороне клиента (на компьютере игрока короче)
2. данные передаются самостоятельными "пакетами", а не потоком целостность которого поддерживается обеими сторонами канала (как это попроще сказать - все тут наслышаны о чудесах онлайна, стрельбе из ниоткуда в никуда, о пропаже этих самых "пакетов" и тп, при передаче в потоке с поддержкой целостности таких проблем не возникает, зато возникают проблемы производительности сервера)
Следовательно, нужно "атаковать" информацию передаваемую с клиента. Поясню на примере.
1. игрок А заходит на 6 игроку Б
2. игрок А стреляет короткой очередью
3. движок Ила игрока А обсчитывает траекторию снарядов и траекторию движения крафта Б (получаемую от сервера)
4. допустим движок приходит к выводу что один снаряд А попал в двигло Б
5. движок формирует пакет данных для передачи серверу, в котором (среди прочего интересного но пока опустим это) присутствует и идентификация результатов стрельбы - двигатель Б поврежден одним снарядом
6. пакет данных отсылается серверу
7. сервер принимает эту информацию и передает ее всем участникам игры - двигатель Б повреджен одним снарядом
8. движки игроков включая Б начинают визуализировать повреждения - двиг дымит или вообще сдох и тп (здесь возможны вариации как в деталях реализации клиентами так и в способе обработки, но это пока не существенно)
Что нужно делать атакующему - для начала собрать материал для анализа, воспользовавшись инструментом типа Ethereal (http://www.ethereal.com/). Затем имея в руках некую статистику можно начинать пробовать свои силы - какие именно данные нужно модифицировать в пакете на шаге 6 выше для того чтобы в нем присутствовала информация не "двигатель Б поврежден одиним снарядом" а "пилот Б словил в макушку 1 снаряд (или 10, или 1000, или ракету или все что угодно)"
Естественно на стороне А для движка и игрока все будет выглядеть "по-честному" пока от сервера не придет ответ что "пилот Б склеил ласты в бурьяне" (пардон за вольность, хочу чтобы объяснение было популярным а не техническим).
---
Причем, прошу заметить, против такого лома есть только один прием, введение которого в обозримом будущем не предвидится - передача данных потоком в сесси, целостность которой поддерживается обеими сторонами (если кто знаком с технологией то что-нибудь вроде SSL с предварительным handshake по сертификату). Как я уже упоминал, применение такого противоядия серьезно сказывается на производительности сервера, самым негативным образом - обработка большого количества данных и контроль целостности канала здорово ограничивают количество участников сессии.
Даже против этого приема есть дальнейшие методы атаки - но они существенно "дороже" в плане реализации - выражаясь технически session termination становится невозможен без того чтобы самому ПОЛНОСТЬЮ реализовывать заместителя кода клиента (то есть внедрение посреди сессии и модификация пакетов не прокатит - нужно будет начинать сессию с самого начала и правильно передавать ВСЕ данные чтобы иметь возможность ими манипулировать).
---
Все вышесказанное естественно ИМХО, все может обстоять совершенно не так как я описал, поскольку сам не пробовал ибо неинтересно.
1. игрок А заходит на 6 игроку Б
2. игрок А стреляет короткой очередью
3. движок Ила игрока А обсчитывает траекторию снарядов и траекторию движения крафта Б (получаемую от сервера)
4. движок Ила игрока Б обсчитывает траекторию снарядов и траекторию движения крафта А (получаемую от сервера)
5. движок А приходит к выводу что один снаряд А попал в двигло Б
6. движок Б приходит к выводу что ниодин снаряд А непопал в Б
7. движок А и Б формирует пакет данных для передачи серверу
8. пакет данных отсылается серверу
9. сервер принимает эту информацию и по результатам идентификации стрельбы - А не равно Б, передает ее всем участникам игры - "обнаружено вероятное мошенничество"
10. игроки А и Б продолжают воевать, злобно матерясь и обвиняя друг друга в читерстве
C2D E6750@3.0; Geil PC2-6400 C4@900 (4x1Gb); ENGTX260 GL+/2DI/896MD3/A @1920x1080; Gigabyte GA-P35-DS3L; Win7(x64); FreeTrack 2.2.0.279 (3-Clip)
И все-таки, БзБ сказал "Гуд Бай!"
Очень хорошо.
Было: сложность константная (порядок 1 в независимости от количества участников)
Стало: сложность линейная (порядок N где N - количество игроков)
Вспомним заявления о невозможности добавления неких свойств в поведении ботов ибо "будет жутко тормозить".
Вы думаете МГ станет реализовывать такую схему? Сейчас каждый клиент обсчитывает свое взаимодействие с остальными объектами, плюс получает информацию с сервера.
В этой схеме, при наличии 4 игроков каждый из них будет обсчитывать 4 среды - свою и ВСЕ 3 остальные, чтобы иметь возможность что-то передавать серверу.
Вы представляете себе ситуацию - игрок 1 говорит серверу - а по моим подсчетам у игрока 2 кончился топляк, а игрок 3 говорит серверу что у игрока 2 топлива еще 25%, при этом игрок 2 имеет совсем другое мнение о протекании процессов с ЕГО крафтом. Как это все разруливать?
Серверу нужно сравнивать "мнения" каждого о каждом - то есть чтобы принять достоверность информации о поведении крафта 1 в игре четырех участников, "показания" трех остальных о нем должны сходиться.
Тогда я могу ВСЕГДА "затопить" поведение любого из своих противников - просто всегда передавая о нем заведомо ложную информацию - игра сразу теряет смысл.
Да и с трудом я представляю чтобы один движок смог без потери производительности обсчитать хотя бы ДВЕ полноценные модели для всего-то ДВУХ игроков.
я просто переодически вообще по др форумам
на Алексе в2003 стоит
проверка выключена т.к. позиционируется как сервер начального уровня и просто для отдыха (это для клыкастых и зубастых) - шоб новенькие не парились какая у них вынь стоит и т.д. и т.п.
если нуна что б именно на в2003 поставить ил с проверкой 2 то пишите в личку
2Baks - Elephant уже давал ссылку, там требуется вмешательство MG, а им по#$% походу.
Что такое в2003? Если версия ОС, то по словам Юсса подходит. Если порт 21003, то не очень (не бывает там никого), только как круглосуточный тестовый сервер.
Алекс конечно была бы супер поляна для тестирования CR2
Но надо сначала как-то оповестить людей (там есть механизм Message of the day?) и устроить временные тестовые включения. Логи посмотреть. Дальше будет видно.
Конечно же введение требования "наличие CR2-совместимой ОС" это серъезное решение, примерно как решение об ампутации при гангрене
Крайний раз редактировалось MichaelRyazan; 25.07.2007 в 20:59.
хостинг этого форума оплачивается вашими кликами по рекламе
можно и 21003 можно и другой порт, включу проверку, логи вышлю
0rrc, полосатый ламер
to mapa3m
так в том то и дело что предложенный тобой вариант - это то что есть сейчас (ИМХО), то что написал я - никто делать не будет, потому что тоже не вариант. все упирается для начала в пинги, потом в приоритеты пакетов (сейчас , ИМХО, опрос по очереди ), потом в мощности компов и серверов.
C2D E6750@3.0; Geil PC2-6400 C4@900 (4x1Gb); ENGTX260 GL+/2DI/896MD3/A @1920x1080; Gigabyte GA-P35-DS3L; Win7(x64); FreeTrack 2.2.0.279 (3-Clip)
И все-таки, БзБ сказал "Гуд Бай!"
хостинг этого форума оплачивается вашими кликами по рекламе
Угу... Даже при пинге у обоих игроков 80 запаздывания межлу ними будет уже достаточное, чтобы на компе А игрок попал, а на Б - нет. Так что там постоянно будут "вероятные мошенники" проявляться...Сообщение от Butcher
Можно просто, чтобы на экране надпись появлялась вроде "XXXX have possibly cheated on YYYY"... Но больше грызни будет, чем проку.
Можно, конечно, сетевой протокол реализовать по принципу, что все обсчитывается на серваке, а не у клиента, но тогда и серверам тяжко будет, и клиенты на ватность управления и стрельбы изматерятся
Трехмерка по одному проекту: www.youtube.com/watch?v=Xub-3TA7MIE&feature=plcp
там стат включить 5 сек - хотели карты менять
включается на confs.ini верно?
0rrc, полосатый ламер
Думаю да.
Все что нагуглил про включение CR2 на выделенном - заквочено здесь.
хостинг этого форума оплачивается вашими кликами по рекламе
Ну вот, уже результат. Спасибо большое.
ВСЕ ПРИГЛАШАЮТСЯ НА ТЕСТИРОВАНИЕ ЗАЩИТЫ CHECKRUNTIME=2 НА ПРЕДМЕТ ГЛЮЧНОСТИ, РАСХОДА ТРАФИКА, СОВМЕСТИМОСТИ С РАЗНЫМИ ОС и ПРОЧ.
81.200.2.214:21001- AleXserver_Stalingrad_1942
версия сервера - 4.08m,
без внешних видов, маркеры у своих.
Ограничение по году - 1942 (крафты периода Сталинградской битвы)
вот повключают cr2 везде - сразу вдруг окажется что у народа просто-таки сплошь и рядом стоит русский win2k
хостинг этого форума оплачивается вашими кликами по рекламе