Найти в Дзене
Цифровая Переплавка

Война с читерами: почему античиты ушли в ядро Windows

Игры давно перестали быть просто развлечением. В соревновательных шутерах, киберспорте и онлайн-матчах на кону стоят рейтинги, деньги и репутация. Поэтому борьба с читерами превратилась в настоящую технологическую гонку вооружений. И одна из самых радикальных мер — запуск античита прямо в ядре Windows, на уровне, где обычно работают только драйверы и системные компоненты. Именно так устроены современные системы защиты вроде Vanguard, BattlEye и Easy Anti-Cheat. Они работают на уровне Ring 0, то есть имеют такие же полномочия, как и сама операционная система. Звучит почти как руткит — и, технически говоря, в этом есть доля правды. Но используются эти возможности не для атаки, а для защиты. Разберёмся, зачем это нужно и как всё работает изнутри. Первые античиты запускались как обычные программы. Они работали в user mode (Ring 3) — том же уровне, где работает сама игра. Но в архитектуре Windows есть фундаментальное правило: любой код на более высоком уровне привилегий может полностью конт
Оглавление

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

Именно так устроены современные системы защиты вроде Vanguard, BattlEye и Easy Anti-Cheat. Они работают на уровне Ring 0, то есть имеют такие же полномочия, как и сама операционная система. Звучит почти как руткит — и, технически говоря, в этом есть доля правды. Но используются эти возможности не для атаки, а для защиты.

Разберёмся, зачем это нужно и как всё работает изнутри.

🧠 Почему обычные античиты не работают

Первые античиты запускались как обычные программы. Они работали в user mode (Ring 3) — том же уровне, где работает сама игра.

Но в архитектуре Windows есть фундаментальное правило:

любой код на более высоком уровне привилегий может полностью контролировать код ниже.

Это означает простую вещь.

Если чит работает в ядре, а античит — нет, то античит всегда проигрывает.

Читер может:

🧩 подменять результаты проверок
🧩 скрывать процессы
🧩 возвращать ложные данные при проверке памяти
🧩 перехватывать API вызовы

Например, античит может проверить память игры через ReadProcessMemory, но драйвер-чит просто подменит результат.

В итоге античит будет думать, что всё чисто.

Поэтому индустрия пришла к неизбежному решению:

👉 перенести античит в ядро системы.

⚙️ Архитектура современных античитов

Практически все современные античиты используют одну и ту же архитектуру из трёх компонентов.

🧩 Kernel driver
работает в ядре (Ring 0), контролирует систему.

🧩 Системный сервис
работает как служба Windows и общается с сервером разработчиков.

🧩 DLL внутри игры
следит за состоянием самой игры.

Эти части общаются между собой через:

⚙️ IOCTL вызовы
⚙️ shared memory
⚙️ named pipes

Такой подход позволяет разделить обязанности:

⚙️ ядро — контроль системы
⚙️ сервис — сеть и логика
⚙️ DLL — контроль игры

🧬 Как античит контролирует систему

Когда античит работает в ядре, он получает доступ к мощным механизмам Windows.

Некоторые из них изначально создавались для антивирусов.

👀 Отслеживание процессов

Windows позволяет драйверу подписаться на события системы.

Например:

🧠 PsSetCreateProcessNotifyRoutine
срабатывает при запуске любого процесса.

Античит может:

⚙️ увидеть запуск чит-программы
⚙️ запретить её запуск
⚙️ пометить пользователя как подозрительного.

🔐 Контроль доступа к памяти игры

Один из самых важных механизмов — ObRegisterCallbacks.

Он позволяет перехватывать попытки открыть процесс игры.

Если чит пытается сделать:

OpenProcess(PROCESS_VM_READ)

античит может просто удалить права доступа.

В результате:

🧩 процесс откроется
🧩 но читать память игры он не сможет.

🧪 Сканирование памяти

Античиты регулярно проверяют память игры.

Чаще всего используется несколько техник.

⚙️ хэширование секций .text
⚙️ поиск исполняемых регионов памяти
⚙️ анализ VAD-дерева процессов

Если в памяти появляется исполняемый код, который не связан ни с одним модулем, это почти всегда означает:

👉 внедрение чита.

🧬 Поиск внедрённого кода

Популярная техника читеров — manual mapping.

DLL загружается без стандартного загрузчика Windows.

В результате:

⚙️ код есть в памяти
⚙️ но в списке модулей его нет.

Античит ищет именно такие регионы:

🧩 исполняемая область памяти
🧩 без файлового источника
🧩 без записи в PEB.

🧷 Обнаружение инжекций

Читы часто внедряются в игру через классические техники:

💉 CreateRemoteThread
💉 APC injection
💉 reflective DLL injection

Античит отслеживает:

⚙️ новые потоки в процессе игры
⚙️ их стартовые адреса
⚙️ наличие модуля в памяти.

Если поток начинается не внутри известного модуля — это почти гарантированная инъекция.

🔎 Поиск перехватов (hooks)

Читы часто перехватывают функции Windows.

Есть несколько типов таких перехватов.

🧩 IAT hooks
🧩 inline hooks
🧩 syscall hooks

Античит сравнивает:

⚙️ байты функции в памяти
⚙️ байты функции на диске.

Если они отличаются — значит код был изменён.

🧠 Самая безумная часть: борьба с драйверами читов

Современные читы часто работают как kernel drivers.

Но Windows требует, чтобы драйвер был подписан.

Поэтому читеры используют технику:

💣 BYOVD — Bring Your Own Vulnerable Driver

Суть:

🧩 загрузить легальный драйвер
🧩 использовать уязвимость
🧩 получить доступ к ядру.

Античиты отвечают:

⚙️ огромными блоклистами драйверов
⚙️ проверкой подписей
⚙️ анализом загруженных модулей.

🧠 Vanguard — самый агрессивный античит

Античит Riot Games пошёл ещё дальше.

Он загружается при загрузке Windows.

Это означает:

⚙️ он видит все драйверы
⚙️ он контролирует загрузку системы
⚙️ чит не может загрузиться раньше него.

По сути Vanguard превращается в охранника ОС.

🧬 Самая сложная угроза — DMA-читы

Но даже ядро не всесильно.

Самая продвинутая техника читеров — DMA-устройства.

Это специальные платы PCIe.

Они:

⚙️ читают физическую память
⚙️ делают это через шину PCIe
⚙️ обходят операционную систему.

То есть:

👉 игра ничего не видит
👉 античит ничего не видит.

Чит работает на другом компьютере.

Это настоящий кошмар для разработчиков.

🤖 Почему античиты используют машинное обучение

Из-за таких атак античиты всё чаще анализируют поведение игрока.

Например:

🎯 движения мыши
🎯 скорость реакции
🎯 траектории прицеливания.

Человек стреляет иначе, чем аимбот.

У человека:

🧠 микрокоррекции
🧠 замедление перед целью
🧠 небольшие ошибки.

У аимбота движение часто выглядит идеально.

ML-модели умеют обнаруживать такие различия.

⚠️ Обратная сторона: приватность

Kernel-античиты вызывают серьёзные споры.

Причины понятны.

Они могут:

⚠️ читать память системы
⚠️ отслеживать процессы
⚠️ видеть драйверы
⚠️ работать до загрузки ОС.

По сути пользователь устанавливает программу с максимальными правами.

Если в ней будет уязвимость — это риск для всей системы.

Поэтому многие исследователи сравнивают античиты с руткитами.

Технически они действительно используют те же механизмы.

🔮 Что будет дальше

Античиты будут двигаться в сторону новых технологий.

⚙️ аппаратная аттестация через TPM
⚙️ безопасная загрузка
⚙️ серверная проверка среды
⚙️ облачный гейминг.

В облаке читить почти невозможно — потому что игра работает на сервере, а не на компьютере игрока.

Но пока это не подходит для всех игр из-за задержек.

📊 Вывод

Современные античиты — это не просто программы, а одни из самых сложных систем безопасности, которые работают на домашних компьютерах.

Они:

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

Но даже этого недостаточно.

Потому что борьба с читерами — это вечная гонка.

Каждый новый уровень защиты рождает новый уровень обхода.

И, судя по всему, эта война ещё очень далека от завершения.

Источники

🔗 https://s4dbrd.github.io/posts/how-kernel-anti-cheats-work/

🔗 https://telegra.ph/Vnutri-yadra-kak-antichity-kontroliruyut-vashu-sistemu-i-pochemu-ehto-vazhno-03-15