Новый плагин на детект бхопа, или сложное более простым языком.

FPT

True Detective
Администратор сервера
Регистрация
3 Май 2014
Сообщения
248
Реакции
288
Баллы
63
Возраст
22
Адрес
Russia
Веб-сайт
steamcommunity.com
Наверняка админы заметили, что поставили новый плагин на детект бхопа (с анлуза) и наверняка говорили следующее:

- ЧО ИТА ТАКОЕ Я НИЧО НЕ ПОНИМАЮ
- ВЕРНИТЕ ТОГ ПАЖАЛУСТА
- СЛИШКОМ СЛОЖНА!!!!!!!
- ЧТО ЗА СТРЕЛОЧКИ ЕПЕРНЫЙ ТЕАТР и прочие вопросы.

Ну, я тоже через это проходил, благо мне более менее объяснили про данный плагин, постараюсь рассказать что да как более простым и понятным языком.

Так как живых примеров с читерами у меня не будет, возьму в пример свои прыжки (за скрин спасибо лилдогу):




По порядку:

- Bunnyhop streak <номер стрика> for <любой игрок><уникальный игровой идентификатор><STEAM_ID><> - Ну тут всё понятно, номер стрика начинается с нуля и показывает номер информационного "блока" относительно некоего игрока для вас.

- Streak jumps: <количество прыжков в блоке> | Hyper?: <процент возможного хиперскролла> | Hack?: <процент возможного читерства> - Здесь чуть подробнее:

Я честно не помню сколько прыжков может быть в одном блоке (вроде как 11 штук), но это не сильно важно. Что, к чему, за что отвечает - поймём чуть позже, пока запомнили это.

========================================

Hyper определяет возможный шанс того, что такой то игрок использует хиперскролл. Настраивается непосредственно в плагине для предупреждения администраторам + самому игроку.

========================================

Что такое хиперскролл (hyperscroll)? Представьте себе, что у вас есть некая мышка, когда вы крутите колесо - оно имеет некое сопротивление и каждый так сказать "щелчок" позволяет фиксировать некую команду. Так вот, чтобы бхопить - мы естественно биндим (настраиваем) триггер +jump (отвечающий за прыжок) конкретно на прокрутку вверх и вниз (mwheelup + mwheeldown).

Так вот, под hyperscroll понимается, что у колеса имеется мЕньшее сопротивление при прокрутке \ не имеется вообще (и крутится как обычное колесо на весу), из-за чего подаётся просто бешенное количество триггеров +jump на один прыжок => преимущество перед обычными "скроллерами" => как правило БАНИТСЯ.

Ну так вот, существует некое внегласное правило для определения того, что человек однозначно использует хиперскролл (оно может меняться):

Как правило, у обычного "скроллера" +jump триггера рандомятся в районе 2 - 10(11) за прыжок. 12+ триггеров +jump уже считается за хиперскролл. Стоп, что за рандом? А вот что. Когда вы крутите колесо - вы подаете +jump команды, и как быстро вы крутите колесо + индивидуальные характеристики самой мышки => настолько больше триггеров +jump вы получаете за 1 прыжок (там как правило даётся N миллисекунд для исполнения).


Ну так вот: на 30 прыжков где то 9-10 прыжков с 11+ +jump триггеров можно вполне себе охарактеризовать как хиперскроллера.

Отложите эту информацию в голове, очень пригодится.

========================================
Hack определяет возможный шанс того, что такой то игрок является читером. Настраивается непосредственно в плагине для предупреждения администраторам + самому игроку.
========================================
Ну тут попроще - для определения читера нам понадобится определить его идеальность прыжков, или Perf(omance). На TOG (старом) плагине для определения читеров использовался именно Perf, а именно: из 30 прыжков определялось количество идеальных прыжков (идеальный прыжок - почти без замедления \ без замедления при касании с землей) в процентном соотношении. Как правило, при достижении Perf в 80% и выше - понимается как читер. НО В РЕДКОМ ИСКЛЮЧЕНИИ ЭТО НЕ ТАК! К примеру если у некоего человека Perf 81.5%, но его триггеры +jump разнятся в районе 3-7 - это НЕ чит. Почему? Ну лично я не видел ниразу таких ситуаций, чтобы чит так сильно рандомил триггеры +jump достигая имбового перфоменса (хотя такие случаи теоретически возможны).

Ну так вот, опять же откладываем у себя в голове это, чтобы имелось понимание в работе плагина.

Идём дальше.


- Streak jumps perf group (1 2 +): <процентное соотношение одного +jump триггера в блоке> <процентное соотношение двух +jump триггеров в блоке> <процентное соотношение N +jump триггеров в блоке> - вспоминаем что такое perf, что такое +jump триггер - начинаем соображать. Один +jump триггер как правило является обычным нажатием на пробел, но так же может быть и читерством - если у человека просто огромный perf, но +jump триггер = 1 => или человек способен просчитать миллисекунды в игре и реагировать с точностью в миллисекунды, или же просто читер =)


Аналогичная история с двумя +jump паттернами. И как правило, нынешние читеры палятся именно с огромным перфом (под 90%) и +jump триггерами под двоечку. На будущее

Не особо важный блог, если речь идёт о странном \ честном игроке. И учитывайте ещё тот факт, что он может неправильные значения показывать, как ни странно.


Теперь пошли непосредственно внутренности блоков:

- id, outvel, gain, avgdist, num, avg+-, pattern - Начинается самая важная часть для изучения сего творения, начнём по порядку:



- id - номер прыжка в блоке, всегда начинается с нуля.


- outvel - скорость (в юнитах) в момент прыжка. На нет4алл сервере однозначно будет варьироваться в районе 250 - 300 юнитов.


- gain - сколько юнитов было прибавлено \ отнято относительно предыдущего прыжка в процентном соотношении.


- avgdist - что то связано со средней дистанцией, как это понимать - честно не знаю, не обращайте внимание.


- num - количество +jump триггеров на один прыжок. Очень важный параметр. Вспоминайте что такое hyperscroll, и вспоминайте про hack - или как сразу отсечь хиперскроллеров и читеров.


- avg+- - без понятия, возможно что это связано со средним количеством прыжков относительно N прыжков, а может и нет - туфта, не смотрите на это.


- pattern - Очень важный, и самый сложный для понимания параметр. Разберём подробнее:



Допустим, мы хотим сделать обычный прыжок через пробел. Нажимая на пробел, мы посылаем команду (триггер) +jump на сервер. Это знак ^. Послали - теперь нужно отжать данный триггер, чтобы не случилось залипания. Благо игра отжимает триггер +jump сама, но для этого ей нужно некое микро-время для отжатия. Это время называется запятой, после знака ^.
Получается у нас ^,
Но у нас всё ещё не отжат +jump триггер. Как только происходит отжатие - рисуется \/
То есть на выходе мы получаем ^,\/ паттерн.
Точка . между данными паттернами является паузой \ делением между прыжками.
На данном моменте у вас уже должно случится небольшое понимание в происходящем.
Вертикальная палочка | отделяет категорию паттерна от других категорий, позволяя прочитать непосредственно внутренности паттернов.

Если не понятно - показываю пример.

Допустим я совершил 1 прыжок с 4 НЕ-идеальными +jump триггерами, где между 3 и 4 +jump триггерами случилась маленькая задержка. Что в данном случае ПРИМЕРНО покажет плагин? А вот такой паттерн:


|^,\/.^,\/.^,\/...^,\/................|

Расшифруем данный паттерн:

Было дано на сервер 3 +jump триггера с одинаковыми промежутками (идеальные промежутки) в виде одной точки, а четвёртый +jump триггер был дан с маленькой задержкой в виде 3 точки (условно 1 точка это N миллисекунд). После этого плагин ждёт ещё какое то некое время для +jump триггеров, пока прыжок не выполнен - отображается в виде точек.

Расшифровали. Давайте ещё пример:


|^,\/.^,\/.^,\/.^,\/................|
|^,\/.^,\/..^,\/................|
|^,\/.^,\/................^,\/................|
|^,\/.^,\/................|
|^,\/...^,\/.^,\/..^,\/................|

Расшифруем данный паттерн:

Имеем блок из 5 прыжков с неким количеством +jump паттернов. Чтобы посчитать конкретно количество +jump паттернов можно взглянуть на параметр num или же посчитать ручками количество ^,v паттернов. В итоге у нас выходит:

Первый прыжок имеет 4 паттерна с одинаковыми паузами => 4 +jump триггера.

Второй прыжок имеет 2 паттерна с одинаковой паузой и 1 паттерн с чуть увеличенной паузой => 3 +jump триггера


Третий прыжок имеет 2 паттерна с одинаковой паузой и 1 поздний паттерн => 3 +jump триггера.

Четвёртый прыжок - 2 паттерна с равной паузой => 2 +jump триггера.

Пятый прыжок - все 4 патттерна с разными паузами => 4 +jump триггера.

Значит некий пациент играет с обычным скроллом (ибо скролл рандомит +jump триггеры от 2 до 10).

Расшифровали. Теперь надеюсь имеется понимание в данных паттернах.


А теперь посмотрим на примеры, где может быть читерский паттерн \ хиперскролл паттерн. Так как живых примеров у меня не будет - изображу пример ручками:

Читерский паттерн:

|^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..........|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/.^,\/.....................|
|^,\/..^,\/.^,\/.^,\/................|


Вспоминаем расшифровку, и замечаем некую странность в данном блоке: слишком много одинаковых паттернов с двумя +jump триггерами. О чём это говорит? О том, что человек постоянно прыгает, используя всего 2 +jump паттерна на выходе за прыжок + наличие жёсткого перфоманса определяется плагином + вручную, достаточно увидеть очень сильный и постоянный разгон параметра outvel в районе 300 и выше, чего обычный игрок почти не сможет выполнить (ибо сервер однозначно стопит игрока при превышении юнитов в 300 и выше).

ВЫВОД: Читер с автобхопом.

НО! Стоит немного изменить картину паттернов, и сразу же определение читера становится почти невозможным в обычном TOG плагине, который был до этого:


|^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..........|
|^,\/....^,\/.....................|
|^,\/.^,\/...^,\/..................|
|^,\/..^,\/.....................|
|^,\/...^,\/.....................|
|^,\/.^,\/..^,\/..................|
|^,\/...^,\/.....................|
|^,\/...^,\/.....................|
|^,\/.^,\/...^,\/..................|
|^,\/...^,\/.....................|
|^,\/..^,\/.^,\/.^,\/................|


Попробуйте поймать такого читера, при том же TOG, который будет в недоумении показывать перф под 40-55 с +jump паттернами под 2-3 периодически. Да, такие случаи единичны и почти нереально таких найти, но они есть. Имейте в виду.

СРАЗУ СКАЖУ, ЧТО НУЖНО ВНИМАТЕЛЬНО ИЗУЧАТЬ КАРТИНУ ПАТТЕРНОВ, ИНАЧЕ МОЖЕТЕ КИНУТЬ В БАН НЕВИНОВНОГО ИГРОКА С ХОРОШИМ СКРОЛЛОМ. ИЗУЧАЙТЕ КОЛИЧЕСТВО И КАЧЕСТВО ПАТТЕРНОВ, НЕ ЗАЦИКЛИВАЙТЕ ВНИМАНИЕ ТОЛЬКО НА ОДНОМ ПАРАМЕТРЕ. Обязательно смотрите на количество +jump триггеров через параметр num или через паттерн ^,\/ и соображайте. Здесь главное набить руку, дальше всё на автоматизме будет происходить.

Ну думаю картина с Hyperscroll будет ясна, но если уж хотите:


|^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.......|
|^,\/....^,\/..^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/..................|
|^,\/.^,\/...^,\/..^,\/.^,\/.^,\/.^,\/.^,\/................|
|^,\/..^,\/.^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..................|
|^,\/.^,\/.^,\/.^,\/.^,\/.^,\/..^,\/..^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/...................|
|^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.................|
|^,\/...^,\/..^,\/.^,\/.^,\/.^,\/.^,\/...................|
|^,\/...^,\/..^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/...........|
|^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/............|
|^,\/...^,\/...^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..............|
|^,\/..^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/....^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/........|

Невооруженным глазом видно просто бешенное количество паттернов +jump на прыжок, что однозначно говорит о том, что у человека Hyperscroll.


Ещё существует редкий вид чита, который детектится под Pattern Jumps

Что это и с чем едят? Ну здесь всё просто. Это когда прыжки постоянно выдают одинаковое или условно одинаковое (с минимальной разницей в +-1 пункт) значение +jump триггеров на прыжок. Технически это можно даже ставить под чит, который выше с двумя +jump триггерами, но в моей практике были единичные пациенты, у которых паттерн джамп триггеров был постоянно под 12-13 на каждый прыжок.
Если человек постоянно выдаёт одинаковое или условно одинаковое кол-во +jump триггеров в количестве N штук (кроме 1 +jump триггера) - то это вполне можно идентифицировать под чит.

Ну для окончательного примера возьму такой блок паттернов, чтобы было понятно (к примеру у пациента постоянно держаться триггеры +jump в количестве ~7 штук:


|^,\/..^,\/...^,\/.^,\/..^,\/.^,\/..^,\/...................|
|^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/...................|
|^,\/...^,\/..^,\/.^,\/..^,\/.^,\/..^,\/...................|
|^,\/.^,\/...^,\/.^,\/.^,\/.^,\/.^,\/...................|
|^,\/.^,\/..^,\/..^,\/.^,\/..^,\/.^,\/...................|
|^,\/.^,\/..^,\/.^,\/.^,\/.^,\/....................|
|^,\/..^,\/..^,\/.^,\/..^,\/.^,\/.^,\/...................|
|^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/..^,\/.................|

|^,\/...^,\/..^,\/.^,\/.^,\/..^,\/.^,\/...................|
|^,\/.^,\/..^,\/.^,\/.^,\/.^,\/.^,\/...................|
|^,\/.^,\/..^,\/.^,\/.^,\/.^,\/..^,\/...................|


Кто уже переварил тему - должен понимать, что блок паттернов вполне походит на читерский (читаем выше почему). И несмотря на маленький разброс пауз между +jump триггерамии (по факту паузы могут быть одинаковы) и в целом разброс триггеров +jump на +-1 пункт - это всё тот же чит.
Поэтому как правило Hack и Pattern Jumps коррелируются друг с другом. Только имейте в виду, что это разные детекты. Ибо для Hack обязателен фактор с нечеловеческим Perf (Performance) прыжков (вспоминаем что это процент идеальных прыжков на N прыжков). В то время как для паттерн джампов обязателен фактор нечеловеческих +jump триггеров с нулевой разницей.


Подведём итог, как же детектить читеров?

- Если имеются подозрения по поводу использования Hyperscroll - Проверяем количество num (кол-во +jump триггеров на 1 прыжок в каждой строке (1 строка = 1 прыжок, вспоминаем)) ИЛИ вручную считаем количество паттернов ^,\/ кому как удобно. Если имеется более 9-10 прыжков с количеством +jump триггеров выше 11 => жулик пойман и вы можете наказывать его со 100% (не забудьте предупредить чтобы вырубил!)

- Если имеются подозрения по поводу читов (Hack) - Проверяем параметр outvel (скорость во время совершения прыжка), смотрим на num параметр и на паттерны. Если сомневаетесь - проверяйте вручную (спекайте за человеком). Как правило люди палятся на элементарном непонимании как делать strafe-jump (погуглите, это уже другая длинная история для изучения). Но в целом плагин сам заметит таких нечестных игроков, поэтому не переживайте.

- Если имеются подозрения по поводу читов (Pattern Jumps) - Проверяем num параметр, смотрим на паттерны. Как было сказано выше - Hack и Pattern Jumps хоть и коррелируются друг с другом, но это не одно и тоже. Человек может иметь постоянные триггера +jump под 8 к примеру, но ужасный perf.

Если сомневаетесь в своём прогнозе - следите за пациентом ещё больше, ибо не всегда один блок с потенциальным читом \ хиперскроллом даёт 100% прогноз на виновность человека. Изучите 2 - 4 блока (больше - лучше), чтобы уж наверняка.

Как правило плагин все палит в автоматическом режиме (кроме Pattern Jumps, он будет скорее подходить под пункт Hack), ваша задача лишь увидеть картину, разобрать её вручную - и сделать соответствующие выводы (ибо плагин может ошибаться, имейте в виду!).
И пожалуйста - не надейтесь на то, что если к примеру плагин пишет что человек читер 60-80% - значит он читер на все 100%. Плагин может ошибаться, повторюсь: Ваша задача понять как работает плагин, как работают прыжки в целом и ваш прогноз будет верным с точностью до 99.9% (опять же, человеческая погрешность тоже допустима).
========================================================================
На этом всё, я постарался объяснить всё максимально подробно. Постарайтесь именно вникнуть в сам процесс работы плагина, и тогда дальнейших вопросов возникнуть не должно.

P.S. Специально для людей, которые опять заорут, мол ААААААААААААА НУ ЗАЧЕМ ТАКОЙ СЛОЖНЫЙ ПЛАГИН ТО ЕПЕРНЫЙ ТЕАТР КАЗИНО КАКОЕ ТО - для исключения неправильных детектов и обнаружения более скрытых читеров, которые очень хитро настроили бхоп чит \ макрос. Не ленитесь вникать, на самом деле здесь ничего такого сложного нет. Переварите материал один раз - и тогда будете спокойно отсекать честных игроков и жуликов. Удачи!

PP.S. Извиняюсь за возможные ошибки \ отпечатки, материала много - мог не уследить. Но всё что хотел донести - расписал.
 
Последнее редактирование:

Ben Solo

Верховный лидер
Команда форума
Модератор
Куратор
Регистрация
5 Сен 2018
Сообщения
398
Реакции
957
Баллы
93
Возраст
26
Адрес
Russia
Ты не мог шрифт сделать ярче а то Х... не видно
 
  • Like
Реакции: Алёша

FPT

True Detective
Администратор сервера
Регистрация
3 Май 2014
Сообщения
248
Реакции
288
Баллы
63
Возраст
22
Адрес
Russia
Веб-сайт
steamcommunity.com
Последнее редактирование:

JIRAIYA

Элита
В отставке
Регистрация
3 Дек 2015
Сообщения
477
Реакции
478
Баллы
63
Адрес
München, Germany
Copy/Past плз в админский раздел и закрепить тему в числе первых.
 
FPT спасибо!
 
  • Like
Реакции: Trimi и FPT