- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 347
- Реакции
- 7
Народ, кто плотно сидит на написании своего kernel-mode софта, есть пара вопросов по архитектуре спуфера. Уперся в интересную стену: базовые IOCTL-хуки на хранилище (StorageIdQueryIoc и прочие) работают стабильно, SMBIOS и физический MAC подменяются без проблем, но всплывают утечки через системные API.
1. Get-PhysicalDisk и кэш stornvme
Win32_DiskDrive отрабатывает как надо, а вот Get-PhysicalDisk лезет напрямую в SMP (Storage Management Provider). Похоже, он вычитывает данные из DeviceExtension пулов в stornvme.sys, которые закэшированы еще на этапе загрузки. DKOM-свипер через MmIsAddressValid у меня вызывает BSOD (AV_VRF_nt!IopReadFile) из-за race conditions. Кто как обходит эту историю? Есть ли способы патчить непагед-пулы без того, чтобы система улетала в ребут при первой же проверке?
2. NDIS и виртуальные адаптеры
Физику хукаю нормально, но Windows упорно палит маки виртуалок: Microsoft Wi-Fi Direct и кучу WAN Miniport'ов. Обычные OID-хуки их просто игнорируют. В какую сторону копать, чтобы перехватить генерацию маков для этих адаптеров? Есть подозрение, что через NDIS-фильтры тут не отделаться, может кто подкинет дельный совет по архитектуре?
3. PnP и Registry Anchors
ComputerHardwareId светит оригинальный GUID, а Device Instance ID с PCI-слотами не дает покоя. Пытался патчить DeviceNode через DKOM, но SetupAPI при сканировании крашит диски. Как вы грамотно обходите PnP-топологию без фатальных ошибок?
Интересует мнение тех, кто уже решал вопрос динамической очистки кэша или плотно работал с NDIS для подмены виртуальных интерфейсов. Кто уже наступал на эти грабли, есть наработки по стабильному обходу?
1. Get-PhysicalDisk и кэш stornvme
Win32_DiskDrive отрабатывает как надо, а вот Get-PhysicalDisk лезет напрямую в SMP (Storage Management Provider). Похоже, он вычитывает данные из DeviceExtension пулов в stornvme.sys, которые закэшированы еще на этапе загрузки. DKOM-свипер через MmIsAddressValid у меня вызывает BSOD (AV_VRF_nt!IopReadFile) из-за race conditions. Кто как обходит эту историю? Есть ли способы патчить непагед-пулы без того, чтобы система улетала в ребут при первой же проверке?
2. NDIS и виртуальные адаптеры
Физику хукаю нормально, но Windows упорно палит маки виртуалок: Microsoft Wi-Fi Direct и кучу WAN Miniport'ов. Обычные OID-хуки их просто игнорируют. В какую сторону копать, чтобы перехватить генерацию маков для этих адаптеров? Есть подозрение, что через NDIS-фильтры тут не отделаться, может кто подкинет дельный совет по архитектуре?
3. PnP и Registry Anchors
ComputerHardwareId светит оригинальный GUID, а Device Instance ID с PCI-слотами не дает покоя. Пытался патчить DeviceNode через DKOM, но SetupAPI при сканировании крашит диски. Как вы грамотно обходите PnP-топологию без фатальных ошибок?
- Обнаружены утечки NGUID и EUI-64 при прямом запросе к SMP.
- Используется чистый C++.
- Проблема с TOCTOU в DKOM-подходе.
- Используется чистый C++.
- Проблема с TOCTOU в DKOM-подходе.
Интересует мнение тех, кто уже решал вопрос динамической очистки кэша или плотно работал с NDIS для подмены виртуальных интерфейсов. Кто уже наступал на эти грабли, есть наработки по стабильному обходу?