Вернуться   D3Scene.Ru Софт портал игр | Хаки | Проги | Статьи > Онлайн MMO игры > Другие MMO игры > Rising Force Online
Присоединяйся к нам

Rising Force Online Представляет собой сплав фэнтези и научной фантастики, сюжет завязан на конфликте трёх враждующих рас.



Ответ
 
Опции темы Опции просмотра
Старый 06.03.2010, 17:16   #1
Бан
 
Аватар для WelaskisS
 
Регистрация: 03.12.2009
Адрес: Казахстан
Сообщений: 206
Репутация: 152
Отправить сообщение для WelaskisS с помощью ICQ
Автор Лампочка

[Exploit] Всё об инвизе и защите от мобов в RFO


Начну с того, что данная статья полностью относится к боту [Ссылки скрыты от гостей.] и [Ссылки скрыты от гостей.]. К флайхакам (в т.ч. RFLoader) она не относится, т.к. изменение значения координаты Y в памяти клиента не касается сервера и окружающих игроков.

В данной статье я хочу от и до описать как всё-таки работает инвиз, как он палится и как его можно использовать безопасно.


LHide


Словом LHide (light hide) в боте [Ссылки скрыты от гостей.] называется невидимость, которая воспроизводится посредством смещения по оси Y на дно (либо наоборот на потолок) локации. Каждая локация представляет собой куб, который ограничен со всех сторон. То есть ниже дна и выше потолка вы подняться не можете. Вот иллюстрация абстрактной локации в игре RFO:


Вообще говоря, точка отсчёта взята несколько некорректно. На самом деле нулевые координаты X и Z находятся также как и Y примерно в центре куба, но т.к. X/Z в данной статье принципиального значения не имеют, для удобства возьму именно такую систему координат.
Бугристая поверхность в данной координатной сетке - это та поверхность, по которой вы бегаете в данной локации, то есть геодата. Она может варьироваться в больших пределах, но не выходя за пределы куба.
Инвиз заключается в том, что вы можете бегать ПОД данной поверхностью или наоборот много выше неё. Это просто и вполне понятно. Но тут есть пара нюансов: если вы бежите по поверхности и вдруг моментально перемещаетесь под неё, для окружающих игроков вы остаётесь видимым. Почему? Клиент жёстко следует прописанной у себя геодате как в отношении себя, так и в отношении окружающих игроков. Так, например, если он видит, что персонаж бежит РОВНО сквозь дерево, он отобразит как персонаж огибает (!!!) это дерево. С этой стороны это на руку ботоводам, с точки зрения инвиза - нет.
Соответственно, если вы входите в инвиз, следите за тем, чтобы у вас не было никого в зоне видимости, либо входите в инвиз и ждите пока люди покинут зону видимости.

Теперь, когда понятно как работает LHide, давайте разберём каким образом работает защита от этого инвиза на измученных ботоводами RF-серверах. Умные администраторы создали скриптики, программки, которые через определённые промежутки времени сканируют координаты Y всех игроков RF-сервера на предмет их "критических" (то есть нереально низких или нереально высоких) значений. Сложность данного метода заключается в том, что в каждой локации координаты разные. То есть если на Элане находится на координате +2000 "легальными" методами нереально, то на Солусе это вполне возможно! Соответственно, данные программы должны учитывать ещё и локацию, на которой находится персонаж. Для начала проиллюстрирую работу данной защиты схематично, а затем опишу методы её обхода:


На данном схеме вы видите две плоскости, которые как бы отсекают дно и потолок локации от её центральной части. Все игроки, кто расположены выше или ниже центральной части распознаются системой как ботоводы. На оффе таких игроков сначала проверяют (за это плюсик), то есть следят за ними в игре, и если информация подтверждается наглядно - банят. На фришках же (например, на абусе) банят по факту. На самом деле это крайне неверно, т.к. RF клиент сильно (также как и сервер) не доработан и персонаж может оказаться под текстурами в результате багов клиента. Отсюда и периодические сообщения мне в ПМ от игроков, кто узнавал о существовании бота из причины своего бана Хотя, признаюсь, часть из них есть и с rfonline.ru, видимо, проверяют не всех.
Второй основной защитной мерой является проверка разницы между координатой дропа (которая при обычных условиях приблизительно равна координате поверхности) с координатой игрока, который его поднимает. Тут всё вполне понятно.
А теперь приступим к обману данных защитных систем!


Обходим защиту.

Существует несколько способов беспалевного использования инвиза в обход защитных механизмов. Опишу их по порядку:
1. В реальных условиях изображённые выше красные грани гораздо более отдалены от центра и приближены ко дну и потолку соответственно. Разработчики таких самопальных систем безусловно не утруждались самостоятельным исследованием максимальных и минимальных "легальных" координат локаций и просто брали из бота те координаты LHide, которые использует он. А он, скажу по секрету, в основном использует гораздо более глубокие координаты чем это нужно. Это сделано чтобы максимально обезопасить ботовода от возможности выйти на поверхность (если вдруг координата поверхности окажется близка ко дну - то есть к координате инвиза). Но тут другая проблема: неизвестно на каком сервере на сколько глубоко находятся данные грани. Это можно установить лишь экспериментально.
Отсюда следует, что обход данной защиты можно осуществить изменив дефолтовую координату инвиза (в боте и варриоре это можно сделать) на менее глубокую. Подробнее:
Приходите на место кача через клиент, заходите ботом, в нём слева нажимаете MoveTo и смотрите свою текущую Y координату. Запоминаете её (назовём её Y1). Затем заходите с левого акка, телепортируетесь в данную локацию, нажимаете LHide, также смотрите текущую координату. Назовём её Y2. Сравниваете её с Y1. Если их разница составляет ну скажем больше 800, тогда смело можете как координату для инвиза юзать "Y1 - 500" (или любое число в пределах 700, но не меньше 500). Также обязательно посмотрите на перса со стороны - невидим ли он. Если видим, увеличивайте разность.
Для RFWarrior принцип тот же самый, только текущую координату можно посмотреть в основном окне программы в поле ввода CY.
Показания:
  • Фришарды (самопальные защитные механизмы наименее чувствительны)
Противопоказания:
  • rfonline.ru (моё личное мнение, что на данном сервере защита максимально проработана, то есть чувствительна)
  • сильно холмистые места (т.к. на дне той или иной впадины вы можете стать видимым).
2. Наиболее эффективный, но несколько трудоёмкий способ. Для начала ищите самую высокую и самую низкую часть локации, на которую можно попасть легальным путём. Для этого лучше всего воспользоваться флайхаком - просто поднимитесь очень высоко, чтобы было видно всю локацию и визуально определите самые высокие и низкие места. Сбегайте до них, посмотрите какую координату имеет ваш персонаж находясь на них. Назовём эти значения Ymin и Ymax. Затем идите на то место кача, где вы хотели бы качаться в инвизе. Смотрите среднюю координату поверхности на данном месте кача: Yср. Далее произведите два элементарных математических действия: Ymax - Yср и Yср - Ymin. Из выражения результат которого будет большим берите Ym* (то есть Ymin или Ymax). И если Ym* > 500, то вы смело можете использовать данный Ym* как координату инвиза для кача в данном месте! Проиллюстрирую данные соображения:


На зелёной плоскости лежит точка Ycp. На красных плоскостях Ymin и Ymax.
Точки Ymin и Ymax взяты на гранях для удобства, на самом деле они также как и Ycp могут быть в любой точке локации.
На данном изображении видно, что качаясь в точке Ycp вы свободно можете подниматься до координаты Ymax и защитные механизмы никак на вас не отреагируют, т.к. формально вы имеете "легальную" Y-координату, но при этом в данном месте будете невидимы.
Данный обход основан на том предположении, что системы контроля координат не учитывают X и Z расположения игрока. Это предположение имеет под собой более чем веские основания: для подобного контроля ГМам понадобилось бы создавать некую виртуальную координатную сетку, в которой бы зоны кача были разбиты на кубы. Это крайне трудоёмко и в целом нецелесообразно, имхо.
Противопоказания:
  • Локации и места кача в которых Ym* < 600.

3. На официальном сервере скорее всего лишь принимали во внимание те координаты инвиза, которые использует бот. На самом же деле они руководствовались своими собственными исследованиями (имхо). Исходя из того, что подобные исследования весьма трудоёмки, я считаю, что система отслеживания координат реально работает лишь в хай-левел локациях. Сам юзаю в ГШ LHide и ни один из тестовых акков ещё не был у меня забанен в течение двух лет. Отсюда следует, что при каче в ГШ вероятно вы можете использовать LHide без ограничений.
Противопоказания:
  • Данная информация в отличие от остальной - чистой воды предположение. Поэтому используйте её на свой страх и риск.

4. На абусе стоит антибан, который проверяет вашу координату только тогда, когда вы делаете логаут. Соответственно, обязательно при выходе из игры восстанавливайте правильную координату. Хотя это касается и всех остальных серверов.

5. Не подбирайте дроп из инвиза. Если вы видите какой-то ценный лут, восстановите координату (выйдите из инвиза) и поднимите.



Защита от мобов без инвиза

Если координата вашего персонажа на 250 больше или меньше координаты атакуемого моба, он вас не атакует. Вы видимо, но он вас не атакует. Данный метод реализован как в боте, так и в варриоре. Я решил немножко остановиться на нём, т.к. по сути он использует ту же самую технику, которая описана выше в способе защиты от ГМов №2. Только тут идут много меньшие координаты, которые не дают вам спалиться в логах даже при подборе лута (а бот, например, автоматом принимает Y-координату лута в данном режиме). То есть, если вы хотите на 100% обезопаситься от защитных механизмов сервера, пользуйтесь данным способом.


THide (только для ботоводов)

Ну и не мог я не упомянуть об ещё одном способе стать невидимым, который реализован только в [Ссылки скрыты от гостей.]. Я не хочу описывать его техническую реализацию (кому уж очень надо, почитайте [Ссылки скрыты от гостей.] - там я описывал почти точно такой же инвиз), только последствия:
  • Не палиться в логах.
  • Перс абсолютно не видим, то есть его нельзя увидеть ни флайхаком, ни гмом (проверял лично вместе с одним из сотрудников Инновы на новусе где-то полтора года назад).
  • Его нельзя атаковать (никак и никто).
  • Палиться сканнером (точка на карте).
  • Моб становится невидимым на то время, на которое вы его атакуете. Дамага, который вы по нему наносите также не видно.
  • В данном инвизе персонаж сам не видит окружающих и не может двигаться, но может поднимать лут, атаковать, баффаться и баффать.
Последний пункт вызывает вполне рациональный вопрос: а зачем он тогда нужен?
За данным инвизом будущее, поэтому я начал его освоение ещё год назад. В его использовании для авто-кача есть два принципиальных подхода:
  1. Средствами скриптового языка бота вы можете на автомате входить в инвиз, бить тех мобов, которые были рядом с вами (на момент входа в инвиз), затем выходить из него, получать информацию о новых мобах, снова входить в него и так по кругу. Данный метод плох тем, что вы не видите лута и вам приходится периодически из него выходить.
  2. Пока что закрытая функция EagleEye позволяет одному боту передавать данные о тех мобах, персах и луте, что он видит - любому другому боту. То есть персонаж находясь в THide получает информацию об окружающем мире, бьёт мобов, поднимает лут. К недостатку относится то, что нужен ещё один перс.. К достоинству: вам не нужно выходить из THide. Функция EE предположительно будет поставляться всем пользователям 1.4 бота.


Заключение

В данной статье я описал способы становиться невидимым (и как следствие игнорировать атаки мобов) в RFOnline, а также возможности обхода защитных механизмов, которые направлены на отлов читеров =) Как я всегда и говорил: используйте своё воображение! Всё же на самом деле просто и вполне логично. До всех тезисов данной статьи вы могли бы дойти и сами.
Прошу прощения за несколько корявые иллюстрации, живопись - это тот талант, которым бог меня обделил. [Ссылки скрыты от гостей.]dark

Последний раз редактировалось WelaskisS; 06.03.2010 в 17:17.
  Ответить с цитированием Наверх
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Powered by vBulletin
Copyright © 2017 vBulletin Solutions, Inc.
Перевод: zCarot | Дизайн: G-A | Верстка: OldEr
Текущее время: 16:25. Часовой пояс GMT +4.