
Исследовательский гипервизор для Windows x64, использующий Intel VT-x и EPT-хуки на уровне каждого CPU для перехвата процедур Nt/Ex/Mm, применения политик запросов и потоковой передачи телеметрии ядра в реальном времени.
Виртуализация Intel VT-x, EPT-хуки и интерактивная телеметрия ядра на C и x64 ассемблере.
Velum переводит работающее ядро Windows в режим VMX non-root и даёт исследователям интерактивный способ наблюдать за нативными вызовами, инспектировать активность ядра и применять политики запросов. Его EPT-хуки воспроизводят оригинальные инструкции аппаратно, в то время как гостевые помощники захватывают метаданные, а отложенный обработчик доставляет читаемые события в консоль или DebugView.
Используйте его, чтобы проследить файловую операцию от входных аргументов до решения политики, сравнить разрешённый запрос с запрещённым или исследовать настройки идентичности процессора и тайминга без перезапуска гипервизора. Реализация включает запуск и остановку для каждого CPU, передачу состояния CET, реинъекцию событий и управление кэшем трансляций.
Начало работы | Руководства по использованию | Техническое описание | Записи выполнения | Лицензия MIT
| Область | Что можно делать |
|---|---|
| EPT-хуки | Включать и отключать хуки экспортируемых точек входа с воспроизведением оригинальных инструкций и восстановлением через MTF |
| Телеметрия нативных вызовов | Инспектировать идентификаторы вызывающих, пути, метаданные процессов и декодированные входные аргументы |
| Политики запросов | Запрещать совпадающие Nt-запросы по критериям вызывающего, пути и входных полей |
| Сокращение прав доступа | Удалять явно запрошенные права для NtCreateFile, NtOpenFile, NtCreateSection, NtOpenProcess и NtDuplicateObject |
| Наблюдение за ядром | Отслеживать выделение/освобождение пула, отображение памяти и входные данные копирования; инспектировать сводки по модулям/тегам |
| Логирование | Выбирать вывод в живую консоль или DebugView и настраивать фильтры для каждой цели |
| CPUID | Применять и запрашивать правила идентичности, затем восстанавливать значения по умолчанию |
| TSC | Применять фиксированное знаковое смещение с трансляцией дедлайнов и сбросом в ноль |
| Жизненный цикл | Проверять каждый участвующий CPU и возвращать Windows к нативному исполнению через процедуру завершения |
Каталог целей содержит 12 Nt-процедур и 12 Ex/Mm-процедур. Консоль разрешает доступные экспорты и общие адреса точек входа на работающем ядре. См. индекс целей для полей каждой цели и поддерживаемых действий.
Среда выполнения оптимизирована вокруг явного владения состоянием и короткого пути обработки VM-exit. Слой x64 ассемблера примерно на 1 000 строк обеспечивает сохранение регистров, переходы VMX, передачу состояния CET и нативный возврат. Структуры для каждого CPU и предварительно выделенные резервы EPT удерживают аллокации вне пути выхода; форматирование событий выполняется в отложенном обработчике уровня PASSIVE. Релизные сборки используют оптимизацию компилятора, а выборочное перехватывание избегает ненужного траппинга обычных операций.
Корневые обработчики управляют переходами VMCS и EPT. Подходящие гостевые помощники захватывают аргументы и вычисляют политики в контексте Windows. Форматирование выполняется позже в обработчике слива. Разрешённый вызов исполняет свою оригинальную инструкцию точки входа под временным EPT-отображением; MTF возвращает управление для восстановления теневой копии. Запрещённые вызовы используют реальный гостевой возврат, так что обычный стек и теневой стек CET продвигаются вместе.
Для подробного объяснения прочитайте Velum: сохранение исполнения Windows при переходах VMX. Статья прослеживает запуск VMX, управляющие поля VMCS, EPT-хуки, CET, обработку NMI/событий, телеметрию и завершение по исходному коду. Она включает свидетельства из WinDbg из исследования Windows 10 и объясняет исправление алиаса ExFreePool/ExFreePoolWithTag. Более краткие инженерные заметки резюмируют эти решения.
Приведённые ниже снимки получены в ходе физической сессии Windows 11 сборки 26300.9711 на Intel i7-12700F с 20 логическими процессорами. Сессия включает 20/20 диагностических проверок CPU, ограниченный отказ в записи файлов, сокращение прав доступа, конфигурацию процессора и проверенное завершение работы. Полная галерея и анимации | Детали сессии и хеши.
Включение хуков, настройка политик, просмотр состояния CPU и управление средой выполнения из одной консоли.

Контролируемый шестибайтовый запрос NtWriteFile с указанием вызывающего кода, пути и входных полей.

Запрошенный доступ 0x12019F становится 0x120199 после удаления маски 0x6. Открытие
успешно, и проверка подтверждает, что полученный дескриптор не может выполнять запись. Этот размеченный
составной снимок сопоставляет вывод монитора с результатом приложения.



Скачать v0.1.0 для Windows x64 (ZIP) | Примечания к выпуску и контрольные суммы SHA-256
ZIP-архив содержит velum.sys и velum-console.exe. Перед загрузкой драйвера следуйте
приведённому ниже руководству по настройке или соберите из исходного кода: