В последние годы в игровой индустрии всё чаще появляются новые типы читерских инструментов, которые не вмешиваются в код или память игры, а работают внешне — через захват экрана и компьютерное зрение. Такие читы особенно опасны: они обходят традиционные античит-системы, но при этом дают игроку почти нечеловеческое преимущество в шутерах от первого лица (FPS). Однако, как оказалось, даже эти «невидимые» читы оставляют след — и его можно надёжно обнаружить с помощью машинного обучения. В этой статье мы разберём, как именно это работает. Статья написана по мотивам работы Zhang Xiao с соавторами 2023 IEEE/ACIS 21st International Conference on Software Engineering Research.

Почему классические античиты бессильны

Большинство современных античит-решений (например, Easy Anti-Cheat, BattlEye) фокусируются на:
- Поиске внедрённых DLL-библиотек,
- Контроле целостности памяти,
- Мониторинге системных вызовов.

Но современные читы на основе YOLO или других моделей компьютерного зрения работают иначе:
- Они не трогают саму игру — запускаются как отдельное приложение.
- Используют скриншоты или видеопоток с экрана.
- Обнаруживают врагов с помощью нейросети для детекции объектов (чаще всего — YOLOv5).
- Программно эмулируют движения мыши, чтобы мгновенно навестись на цель.

Поскольку такие читы не модифицируют клиент или сетевой протокол, они остаются «невидимыми» для большинства систем защиты. Однако именно эмуляция мыши и становится их ахиллесовой пятой.

Эксперимент: как устроена система детекции

Исследователи построили специальную тестовую среду на базе Unity (FPS Microgame), чтобы сымитировать реальные условия FPS-игры:
- Арена без прыжков и укрытий — только свободное перемещение и прицеливание.
- Враги появляются в «бункерах» и ведут себя по одному из 16 сценариев (движение, остановка, патрулирование).
- Запись данных ведётся только в момент боя — от появления врага до его уничтожения.

Сбор данных: не курсор, а вектор вращения

Важный технический нюанс: в FPS курсор мыши не двигается — он всегда в центре экрана. Вместо этого Unity передаёт относительные изменения угла камеры через Input.GetAxis("Mouse X/Y").

Эти значения:
- Характеризуют скорость и направление вращения камеры,
- Являются вещественными числами (а не координатами),
- Отражают естественные «дрожания» и плавность движений человека.

Именно эти сигналы и фиксировались — с и без использования чита.

Читерский инструмент: YOLO + эмуляция мыши

Для генерации «загрязнённых» данных был создан собственный чит:
1. Детекция: используется официальная предобученная модель YOLOv5, без дообучения под конкретную игру. Любой объект класса «person» считается врагом.
2. Наведение: если враг попадает в заданную зону вокруг центра экрана, система мгновенно вычисляет вектор смещения и отправляет команду эмуляции мыши.
3. Наведение происходит за 1–2 кадра, что физически невозможно для человека.

Результат — резкие, линейные, сверхточные движения, лишенные естественной вариативности.

Модель детекции: CNN на временных рядах

Сырые данные — это временные ряды значений Mouse X и Mouse Y. Но CNN работает с изображениями. Как быть?

Авторы предложили нестандартное представление данных:
- Временные ряды нормализуются и дополняются до квадратной матрицы (например, 32×32).
- Эта матрица интерпретируется как монохромное изображение, где яркость пикселя = интенсивность движения в данный момент.

На таких «изображениях» обучается простая, но эффективная CNN:
- 3 свёрточных слоя,
- 3 слоя пулинга,
- 3 полносвязных слоя.

Модель решает задачу бинарной классификации: «обычный игрок» vs «читер».

Результаты: точность выше 99,4% и скорость в 0,6 мс на запись

Обучение проводилось на датасете из 1000 записей (700 без чита, 300 с читом). После оптимизации (отказ от сигмоиды, остановка на 70 эпохах) модель показала впечатляющие результаты:

Метрика Значение
Точность от 99,4% до 100%
Время обработки ~0,6 мс на запись (0,93 с на 1500 записей)

Для сравнения: метод из предыдущих исследований, ориентированный на DLL-читы, достигал лишь 77,77% точности.

При этом предложенная система:
- Работает в реальном времени (лагов не создаёт),
- Не требует доступа к памяти игры,
- Применима к любой FPS-игре с гуманоидными противниками.

Практическое значение для геймдева

Это исследование доказывает: даже самые «чистые» внешние читы можно эффективно ловить, если правильно анализировать входные действия игрока.

Для разработчиков игр и античит-систем это открывает новые возможности:
- Сбор и анализ метаданных ввода (мышь, клавиатура) как отдельный слой защиты.
- Использование лёгких CNN-моделей прямо на клиенте или на сервере.
- Построение универсальных моделей, не привязанных к конкретной игре.

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

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

Для игровой индустрии это значит: античит-системы следующего поколения должны смотреть не только внутрь игры, но и на то, как игрок взаимодействует с ней. Потому что даже самый умный чит не может идеально имитировать человека — а значит, его всегда можно распознать.