Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос EAC фризит систему при инициализации кастомного HV — проблемы с CR3 и VMCS

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
566
Реакции
14
Привет всем любителям низкоуровневого реверса и разработки драйверов.

Столкнулся с крайне неприятной проблемой: на этапе инициализации EAC система улетает в мертвый фриз (dead hang). Пытаюсь разобраться, где именно мой гипервизор дает осечку, так как дебажить такие вещи — то еще удовольствие.

Что уже сделано и проверено:
  1. Внедрена полная изоляция хостового CR3 (private host CR3 isolation).
  2. Написана своя логика настройки VMCS.
  3. Для чистоты эксперимента большинство обработчиков VM-exit были закомментированы.

Самое интересное выяснилось при сравнении со сторонними базами. Если взять мой код построения CR3 и VMCS и перенести его в проект Ophion (база от Miraka), то всё работает стабильно. В связке с Ophion античит не вешает систему, хотя логика формирования структур идентична.

Отсюда вывод: проблема не в самих структурах CR3 или VMCS, а в чем-то другом внутри моего собственного фреймворка. Возможно, EAC триггерит какие-то специфические проверки при обращении к MSR или чекает тайминги через RDTSC, которые в моей базе обрабатываются иначе.

  1. Проверка обработки NMI и прерываний при активном гипервизоре.
  2. Состояние гостевых регистров при входе/выходе.
  3. Корректная реализация EPT, если она используется.
  4. Тайминг-чеки: EAC очень не любит, когда выполнение определенных инструкций занимает слишком много времени из-за VM-exit.

Ситуация патовая, бьюсь уже несколько недель. Если кто-то плотно ковырял инициализацию Easy Anti-Cheat и сталкивался с тем, что античит вешает систему именно на кастомных HV-движках — накидайте идей, в какую сторону еще можно копнуть.

Может быть, есть нюансы в дескрипторных таблицах или специфических проверках стека при переходе в VMX mode, которые я упустил.
 
Назад
Сверху Снизу