- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 445
- Реакции
- 10
Пока пастеры продолжают верить в святой патч g_CiOptions, разработчики античитов тихо курят в сторонке и собирают логи. Решил накидать базу по тому, как EasyAntiCheat_EOS.sys на самом деле видит ваши попытки обойти DSE (Driver Signature Enforcement).
Классическая идея «патчим ci.dll -> грузим -> ресторим -> профит» давно не работает так, как вам обещают в старых туторах. Если копнуть глубже в ядро, всплывает куча нюансов.
Как выглядит стандартный флоу (который вас палит):
На бумаге это кажется чистым, но EAC — это не школьный проект. Проблемы начинаются там, где вы оставляете следы.
Основные векторы детекта:
1. Списки модулей и системная инфа
EAC гуляет по PsLoadedModuleList не просто ради интереса. Они проверяют не только наличие модуля, но и:
Даже если вы анклинкнулись из одного списка, есть SystemModuleInformation.
Это тот же список, но другой путь доступа. Забыли про него — получили мисматч и флаг в базу.
2. Объект драйвера (DRIVER_OBJECT)
Многие забывают, что даже после удаления из списков модулей, в системе остается объект драйвера. Путь \Driver\YourDriverName — это абсолютно другая структура, и EAC отлично умеет её находить.
3. Тайминги и состояние Code Integrity
Через SystemCodeIntegrityInformation можно вытянуть текущее состояние CI.
Если вы не попали в тайминг при патче/ресторе, античит зафиксирует изменение состояния проверки подписей в момент активности подозрительных процессов.
4. Парсинг сертификатов
Проверки стали намного жестче. EAC реально парсит цепочку (chain), проверяет эмитента и детектит самоподписанные (self-signed) сертификаты. Фейковая подпись сейчас — это билет в один конец.
Итог:
Простой рестор ci.dll не делает вас невидимым. Даже если вы почистили реестр, анклинкнулись и дропнули объект драйвера, вы лишь слегка снизили видимость. Консистентность структур ядра нарушена, и при глубоком скане это всплывает.
Загрузка до старта EAC немного помогает избежать колбэков в момент загрузки, но пост-сканы модулей и объектов никуда не деваются. DSE bypass — это не «гг, я в домике», а лишь один из этапов, который требует идеальной чистки хвостов.
Кто из местных уже пробовал фиксить консистентность объектов драйвера вручную или все на кастомные мапперы пересели?
Классическая идея «патчим ci.dll -> грузим -> ресторим -> профит» давно не работает так, как вам обещают в старых туторах. Если копнуть глубже в ядро, всплывает куча нюансов.
Как выглядит стандартный флоу (который вас палит):
- Патч g_CiOptions или манипуляции с CiValidateImageHeader.
- Вызов NtLoadDriver, который триггерит MmLoadSystemImage.
- Система сама добавляет ваш драйвер в PsLoadedModuleList.
- Создается DRIVER_OBJECT в директории \Driver\.
- Используется ключ сервиса в реестре.
- Выполняется DriverEntry, и вы радостно восстанавливаете патч.
На бумаге это кажется чистым, но EAC — это не школьный проект. Проблемы начинаются там, где вы оставляете следы.
Основные векторы детекта:
1. Списки модулей и системная инфа
EAC гуляет по PsLoadedModuleList не просто ради интереса. Они проверяют не только наличие модуля, но и:
- Имя драйвера в списке;
- Информацию о сертификате;
- Целостность структур самого списка.
Даже если вы анклинкнулись из одного списка, есть SystemModuleInformation.
Код:
NtQuerySystemInformation(SystemModuleInformation, ...)
2. Объект драйвера (DRIVER_OBJECT)
Многие забывают, что даже после удаления из списков модулей, в системе остается объект драйвера. Путь \Driver\YourDriverName — это абсолютно другая структура, и EAC отлично умеет её находить.
3. Тайминги и состояние Code Integrity
Через SystemCodeIntegrityInformation можно вытянуть текущее состояние CI.
Код:
NtQuerySystemInformation(SystemCodeIntegrityInformation)
4. Парсинг сертификатов
Проверки стали намного жестче. EAC реально парсит цепочку (chain), проверяет эмитента и детектит самоподписанные (self-signed) сертификаты. Фейковая подпись сейчас — это билет в один конец.
Итог:
Простой рестор ci.dll не делает вас невидимым. Даже если вы почистили реестр, анклинкнулись и дропнули объект драйвера, вы лишь слегка снизили видимость. Консистентность структур ядра нарушена, и при глубоком скане это всплывает.
Загрузка до старта EAC немного помогает избежать колбэков в момент загрузки, но пост-сканы модулей и объектов никуда не деваются. DSE bypass — это не «гг, я в домике», а лишь один из этапов, который требует идеальной чистки хвостов.
Кто из местных уже пробовал фиксить консистентность объектов драйвера вручную или все на кастомные мапперы пересели?