- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 251
- Реакции
- 6
Парни, всем привет.
Завис над эмуляцией vgk, уперся в тупик с хендшейком. Драйвер поднимается как сервис, RC4 слой отрабатывает, VGC коннектится и кидает два IOCTL (0x22C028 и 0x22C034), после чего благополучно отваливается с кодом 0x94. Похоже, он валидирует именно содержимое ответа, а не просто статус IRP.
Пытался дебажить, но везде натыкаюсь на стены:
Ситуация выходит классическая: любое действие либо палится PPL, либо анти-дебагом.
Кто ковырял эту тему и проходил этап хендшейка — как вы достаете реальные ответы? Есть смысл лезть на уровень гипервизора, копать ETW или кто-то просто подбирал значения методом тыка, пока оно не перестало крашиться? Есть соображения по методологии?
Завис над эмуляцией vgk, уперся в тупик с хендшейком. Драйвер поднимается как сервис, RC4 слой отрабатывает, VGC коннектится и кидает два IOCTL (0x22C028 и 0x22C034), после чего благополучно отваливается с кодом 0x94. Похоже, он валидирует именно содержимое ответа, а не просто статус IRP.
Пытался дебажить, но везде натыкаюсь на стены:
- Frida на vgc.exe не идет из-за PPL защиты.
- IRPMon глухо молчит, хуки не цепляются.
- Procmon не видит ничего, так как VGC долбится в NtDeviceIoControlFile напрямую.
- WinDbg через локальное ядро позволяет только читать память, но любой брейкпоинт или bcdedit /debug вешает загрузку vgk.
- Статика в IDA/Ghidra бесполезна — IOCTL коды генерятся в рантайме.
- Хук MajorFunction через ObReferenceObjectByName тоже не спасает, так как vgk не инициализируется при тестовом режиме загрузки.
Ситуация выходит классическая: любое действие либо палится PPL, либо анти-дебагом.
Кто ковырял эту тему и проходил этап хендшейка — как вы достаете реальные ответы? Есть смысл лезть на уровень гипервизора, копать ETW или кто-то просто подбирал значения методом тыка, пока оно не перестало крашиться? Есть соображения по методологии?