Skip to content
Все статьи
This article is available in English
Опубликовано7 мин чтения

Silent aim на RedM: выстрел, который попадает туда, куда никто не целился

Silent aim на RedM не двигает прицел, он двигает пулю. Как сервер доказывает читерство, сопоставляя рассказ стрелка с рассказом жертвы.

silent aimRedMдетекцияподтверждениеPvP

Также доступно на языках:EnglishFrançaisEspañolRomână

Игрок погибает посреди улицы. Он покадрово пересматривает собственную запись: человек на другой стороне дороги смотрел в другую сторону, оружие на уровне бедра, а пуля всё равно прилетела ему в голову. Никто из вашего персонала не может сказать, что произошло, потому что на экране не случилось ничего необычного. Именно это и делает silent aim на RedM, и поэтому это самый трудный для наказания чит на ролевом сервере.

Что это такое на самом деле

Классический аимбот двигает камеру: он наводит прицел на цель, и это видно. Silent aim никогда не трогает камеру. Он позволяет игроку целиться куда угодно, а затем переписывает выстрел на выходе. Клиент сообщает серверу: точку выстрела, направление, поражённую сущность, точку попадания. Чит правит эти поля после щелчка и до отправки.

Результат - чистое противоречие: заявленный вектор прицеливания смотрит на север, заявленное попадание находится на западе, а игра всё равно применяет урон. В RDR3 это порождает сцены, которые очень легко узнать, если умеешь их читать: револьвер, попадающий с восьмидесяти метров из-за камня, выстрел в землю, убивающий игрока на балконе, мишень, падающая, пока стрелок шагом перезаряжается.

Качественный вариант ещё тише: чит отклоняет пулю всего на несколько градусов, ровно настолько, чтобы превратить промах в убийство. Игрок выглядит легитимно. Просто у него процент попаданий, какого нет ни у кого другого.

Почему человеческий глаз не может это решить

Три причины, и они накладываются друг на друга:

  • Жертва никогда не видит выстрела. Она видит последствие. То, что получает её машина, уже версия, исправленная читом, поэтому попадание приходится в правдоподобную позицию.

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

  • Задержка размывает всё. На загруженном сервере от двухсот до трёхсот миллисекунд обычно разделяют то, что видит один игрок, и то, что видит другой. Выстрел, который выглядит невозможным, может быть обычной рассинхронизацией, и наоборот.

Поэтому silent aim месяцами живёт на хорошо администрируемых серверах. Приходят жалобы, админы идут смотреть, ничего не видят и закрывают тикет. Читер понимает, что на глаз его не поймают, и с каждой неделей играет всё откровеннее.

Единственное доказательство, которое выдерживает: два рассказа об одном выстреле

Выстрел - это не одно событие, а два рассказа. Стрелок описывает свой выстрел. Жертва описывает полученное попадание. Эти два рассказа приходят с двух разных машин, а чит работает только на одной из них. В этом структурная слабость silent aim: чтобы остаться согласованным, ему пришлось бы подделать и компьютер жертвы.

Поэтому сервер хранит оба рассказа раздельно. От стрелка: где была его камера, в какую сторону смотрела, какое оружие, в какой именно момент. От жертвы: откуда пришёл выстрел, какая часть тела, сколько урона. Затем они сопоставляются в коротком временном окне, и вы спрашиваете, описывают ли они один и тот же мир.

Конкретно мы задаём три вопроса, в таком порядке. Ни один из них сам по себе недостаточен: дело складывается из их накопления.

1. Была ли камера направлена хоть на кого-нибудь?

До попадания один простой вопрос: в момент выстрела пересекал ли вектор прицеливания стрелка какую-либо цель? Не нужную цель, а какую-нибудь. Игрок, наносящий урон сущности, пока его прицел указывал строго ни на кого, не промахнулся: он никогда не делал этого движения.

Это самый чистый случай, и именно его хорошо настроенный чит избегает: качественный silent aim держит правдоподобную цель где-то на оси, чтобы не попасться здесь.

2. Тот ли это игрок, в которого целились?

Второй вопрос: совпадает ли сущность, в которую, по заявлению стрелка, он целился, с той, которая на самом деле получила попадание? Расхождение между ними (прицел на A, попадание подтверждено у B) не имеет законного объяснения. Пуля не меняет получателя в полёте.

3. Физически ли допустим угол?

Затем количественная мера: угол между направлением, заявленным стрелком, и вектором, который на самом деле идёт от него к попаданию, о котором сообщила жертва. Честный выстрел даёт расхождение максимум в несколько градусов, объясняемое отдачей, разбросом оружия и тем, что оба игрока двигаются, пока летит пуля.

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

Не публикуется/Пороги срабатывания не публикуются: известное значение - это значение, под которое настраивают чит.

Важнее всего повторение. Один одиночный широкий выстрел - рассинхронизация. Двенадцать широких выстрелов в одной схватке - программа.

Материал, который вы передаёте администратору

Детекция, не способная рассказать собственную историю, ничего не стоит: игрок её оспорит, и часть вашего сообщества встанет на его сторону. В таком разговоре выдерживают два рассказа, положенные рядом, выстрел за выстрелом.

Один скоррелированный выстрел в том виде, в каком он попадает в материал дела
стрелок
позиция, направление прицеливания, оружие, серверная метка времени
цель на оси
нет, либо идентификатор сущности, в которую целились
жертва
идентификатор, точка попадания, зона тела, урон
угловое расхождение
между заявленным прицеливанием и подтверждённым попаданием
задержка
измеренное запаздывание между двумя рассказами
повторяемость
число расходящихся выстрелов в одной перестрелке

С этого момента разговор меняет природу. Вы больше не говорите «античит его отметил», вы показываете одиннадцать выстрелов, в которых прицел игрока и рана его жертвы не могут быть правдой одновременно.

Чего этот метод не умеет

Три ограничения, которые мы предпочитаем записать сами.

Нужна жертва-игрок. Всё доказательство опирается на второго свидетеля. Читер, стреляющий только по NPC, животным или лошадям, не даёт никакого подтверждения: на другой стороне нет никого, кто мог бы опровергнуть его рассказ. Мы поймаем его другим способом или не поймаем вовсе.

Крошечное отклонение остаётся внутри шума. Silent aim, настроенный на один-два градуса, неотличим от отдачи и задержки. Мы могли бы сделать его обнаружимым, понизив порог, ценой оповещений на честных перестрелках, а античит, который кричит постоянно, в итоге игнорируют: этому посвящена статья о ложных срабатываниях. Поэтому мы принимаем, что пропустим нижний край спектра, но не станем обвинять ваших завсегдатаев.

Плохое соединение создаёт шум. Игрок с нестабильными 400 мс естественным образом порождает расхождения. Окно корреляции это учитывает, а выстрелы, чья задержка превышает то, что измерение способно поглотить, отбрасываются, то есть теряются. Плохое соединение немного защищает читера: такова цена того, чтобы не банить игрока на спутниковом интернете.

Коротко

  1. 1

    Silent aim не двигает прицел, он переписывает выстрел, заявленный серверу: на экране не появляется ничего необычного.

  2. 2

    Ни один человек-свидетель не может это подтвердить: ни жертва, ни запись стрелка.

  3. 3

    Доказательство даёт сервер, сопоставляя рассказ стрелка с рассказом жертвы: цель на оси, личность жертвы, угловое расхождение.

  4. 4

    Один расходящийся выстрел - сетевой инцидент, серия расходящихся выстрелов - программа.

  5. 5

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

Материалы со скоррелированными выстрелами можно посмотреть на реальных данных в демо-панели, а тарифы публичны. Античит Baobab описывает весь стек детекций, к которому относится эта корреляция выстрелов.

Читать дальше

Судите по фактам, а не по обещаниям

Демо-панель открыта только для чтения на реальных данных, без регистрации.

Everything on one page: Baobab anticheat, detections, evidence and panel.