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

Вопрос Vanguard (vgk.sys) - реверс IOCTL ответов

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

Завис над эмуляцией vgk, уперся в тупик с хендшейком. Драйвер поднимается как сервис, RC4 слой отрабатывает, VGC коннектится и кидает два IOCTL (0x22C028 и 0x22C034), после чего благополучно отваливается с кодом 0x94. Похоже, он валидирует именно содержимое ответа, а не просто статус IRP.

Пытался дебажить, но везде натыкаюсь на стены:
  1. Frida на vgc.exe не идет из-за PPL защиты.
  2. IRPMon глухо молчит, хуки не цепляются.
  3. Procmon не видит ничего, так как VGC долбится в NtDeviceIoControlFile напрямую.
  4. WinDbg через локальное ядро позволяет только читать память, но любой брейкпоинт или bcdedit /debug вешает загрузку vgk.
  5. Статика в IDA/Ghidra бесполезна — IOCTL коды генерятся в рантайме.
  6. Хук MajorFunction через ObReferenceObjectByName тоже не спасает, так как vgk не инициализируется при тестовом режиме загрузки.

Ситуация выходит классическая: любое действие либо палится PPL, либо анти-дебагом.

Кто ковырял эту тему и проходил этап хендшейка — как вы достаете реальные ответы? Есть смысл лезть на уровень гипервизора, копать ETW или кто-то просто подбирал значения методом тыка, пока оно не перестало крашиться? Есть соображения по методологии?
 
Назад
Сверху Снизу