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

Гайд Fortnite / Rust — EAC Update и BSOD на кастомных SVM гипервизорах

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
616
Реакции
16
Здарова, реверсеры. Easy Anti-Cheat (EAC) в очередной раз подкинул проблем любителям Ring-1. Судя по логам, в последних апдейтах Fortnite и Rust завезли новые проверки для SVM гипервизоров, которые наглухо вешают систему в BSOD при инициализации.

Ситуация классическая: пишется кастомный гипервизор (Type 1), который отлично переваривает Apex и Arc Raiders, но стоит запустить Fortnite — ловим DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1) сразу после надписи "waiting for game".

Технические детали падения:
  1. Модуль: EasyAntiCheat_EOS.sys
  2. Оффсет: +26f9cf
  3. Инструкция:
    Код:
    Expand Collapse Copy
    add byte ptr [rcx],al
  4. Bugcheck: 0xD1 (IRQL 14)

Похоже, античит либо детектит аномалии в таймингах через CPUID/MSR, либо проверяет консистентность структур, которые гипервизор не успевает или неправильно подменяет при VM-exit. Самое интересное, что IRQL задрана до 14 (0xE), что намекает на выполнение кода в контексте прерывания или жесткого таймера.

DRIVER_IRQL_NOT_LESS_OR_EQUAL (d1)
Arguments:
Arg1: fffffffff6542627, memory referenced
Arg2: 000000000000000e, IRQL
Arg3: 0000000000000001, value 0 = read operation, 1 = write operation
Arg4: fffff8058c3af9cf, address which referenced memory

PROCESS_NAME: System
IMAGE_NAME: EasyAntiCheat_EOS.sys
FAILURE_BUCKET_ID: AV_EasyAntiCheat_EOS!unknown_function

Адрес ffffffff f6542627 выглядит как откровенный мусор или результат маскировки, которую EAC успешно пробил. Если вы ковыряете свои SVM-решения, обратите внимание на то, как вы обрабатываете вложенные страницы и перехваты MSR. Явно идет обращение по невалидному указателю в высокоприоритетном потоке.

Кто уже сталкивался с этой итерацией EOS? Есть мысли, что именно они начали запрашивать через VM-Exit, что приводит к такой инвалидности указателя в их собственном драйвере?
 
Здарова, братан. Классика жанра — EAC в очередной раз решил усложнить жизнь Ring-1 энтузиастам. Твой кейс почти один в один совпадает с тем, что обсуждали на UnknownCheats буквально неделю назад (тред от ~19 апреля 2026): парень пишет свой Type-1 SVM гипервизор, всё летает на Apex Legends и Arc Raiders, а на Fortnite/Rust при инициализации EAC (именно на "waiting for game") — BSOD DRIVER_IRQL_NOT_LESS_OR_EQUAL (0xD1) с виной на EasyAntiCheat_EOS.sys. EAC любит спамить CPUID (листья гипервизора, feature bits), RDTSC/RDTSCP, MSR (например, VM_CR, HV-related, или timing-related вроде TSC_AUX). Если твой гипервизор не эмулирует их идеально (или вводит заметную задержку на exit'ах) — может пойти в side-channel или просто в invalid state. Логируй все VM-exit'ы жёстко (особенно перед/после EAC init). Смотри, какой exit code, rip, rcx и т.д. приходят именно в момент краша. Проверь обработку #PF, MSR, CPUID, RDTSC. Убедись, что ты правильно эмулируешь "no hypervisor" поведение (CPU leaf 0x40000000+ должен быть пустым или спуфлен). Это не первый и не последний раз, когда EAC ломает гипервизоры через VM-exit + высокоприоритетный код. На UC народ в похожем треде тоже крутится в циклах, фиксов пока публично не выложили (или не нашли). Если у тебя есть конкретные детали логов (какой именно VM-exit перед крашем, VMCB snapshot), можно покопать глубже.
 
Здарова, братан. Классика жанра — EAC в очередной раз решил усложнить жизнь Ring-1 энтузиастам. Твой кейс почти один в один совпадает с тем, что обсуждали на UnknownCheats буквально неделю назад (тред от ~19 апреля 2026): парень пишет свой Type-1 SVM гипервизор, всё летает на Apex Legends и Arc Raiders, а на Fortnite/Rust при инициализации EAC (именно на "waiting for game") — BSOD DRIVER_IRQL_NOT_LESS_OR_EQUAL (0xD1) с виной на EasyAntiCheat_EOS.sys. EAC любит спамить CPUID (листья гипервизора, feature bits), RDTSC/RDTSCP, MSR (например, VM_CR, HV-related, или timing-related вроде TSC_AUX). Если твой гипервизор не эмулирует их идеально (или вводит заметную задержку на exit'ах) — может пойти в side-channel или просто в invalid state. Логируй все VM-exit'ы жёстко (особенно перед/после EAC init). Смотри, какой exit code, rip, rcx и т.д. приходят именно в момент краша. Проверь обработку #PF, MSR, CPUID, RDTSC. Убедись, что ты правильно эмулируешь "no hypervisor" поведение (CPU leaf 0x40000000+ должен быть пустым или спуфлен). Это не первый и не последний раз, когда EAC ломает гипервизоры через VM-exit + высокоприоритетный код. На UC народ в похожем треде тоже крутится в циклах, фиксов пока публично не выложили (или не нашли). Если у тебя есть конкретные детали логов (какой именно VM-exit перед крашем, VMCB snapshot), можно покопать глубже.
1777206084396.png
 
Назад
Сверху Снизу