- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 566
- Реакции
- 14
Привет всем любителям низкоуровневого реверса и разработки драйверов.
Столкнулся с крайне неприятной проблемой: на этапе инициализации EAC система улетает в мертвый фриз (dead hang). Пытаюсь разобраться, где именно мой гипервизор дает осечку, так как дебажить такие вещи — то еще удовольствие.
Что уже сделано и проверено:
Самое интересное выяснилось при сравнении со сторонними базами. Если взять мой код построения CR3 и VMCS и перенести его в проект Ophion (база от Miraka), то всё работает стабильно. В связке с Ophion античит не вешает систему, хотя логика формирования структур идентична.
Отсюда вывод: проблема не в самих структурах CR3 или VMCS, а в чем-то другом внутри моего собственного фреймворка. Возможно, EAC триггерит какие-то специфические проверки при обращении к MSR или чекает тайминги через RDTSC, которые в моей базе обрабатываются иначе.
Ситуация патовая, бьюсь уже несколько недель. Если кто-то плотно ковырял инициализацию Easy Anti-Cheat и сталкивался с тем, что античит вешает систему именно на кастомных HV-движках — накидайте идей, в какую сторону еще можно копнуть.
Может быть, есть нюансы в дескрипторных таблицах или специфических проверках стека при переходе в VMX mode, которые я упустил.
Столкнулся с крайне неприятной проблемой: на этапе инициализации EAC система улетает в мертвый фриз (dead hang). Пытаюсь разобраться, где именно мой гипервизор дает осечку, так как дебажить такие вещи — то еще удовольствие.
Что уже сделано и проверено:
- Внедрена полная изоляция хостового CR3 (private host CR3 isolation).
- Написана своя логика настройки VMCS.
- Для чистоты эксперимента большинство обработчиков VM-exit были закомментированы.
Самое интересное выяснилось при сравнении со сторонними базами. Если взять мой код построения CR3 и VMCS и перенести его в проект Ophion (база от Miraka), то всё работает стабильно. В связке с Ophion античит не вешает систему, хотя логика формирования структур идентична.
Отсюда вывод: проблема не в самих структурах CR3 или VMCS, а в чем-то другом внутри моего собственного фреймворка. Возможно, EAC триггерит какие-то специфические проверки при обращении к MSR или чекает тайминги через RDTSC, которые в моей базе обрабатываются иначе.
- Проверка обработки NMI и прерываний при активном гипервизоре.
- Состояние гостевых регистров при входе/выходе.
- Корректная реализация EPT, если она используется.
- Тайминг-чеки: EAC очень не любит, когда выполнение определенных инструкций занимает слишком много времени из-за VM-exit.
Ситуация патовая, бьюсь уже несколько недель. Если кто-то плотно ковырял инициализацию Easy Anti-Cheat и сталкивался с тем, что античит вешает систему именно на кастомных HV-движках — накидайте идей, в какую сторону еще можно копнуть.
Может быть, есть нюансы в дескрипторных таблицах или специфических проверках стека при переходе в VMX mode, которые я упустил.