Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
matrix-rs — Rusty Hypervisor — гипервизор типа 2 «Blue Pill» (синяя пилюля) уровня ядра Windows, написанный на Rust (кодовое имя: Matrix) | Kitploit
Инструменты/GitHubGitHub/memn0ps/matrix-rs
Криминалистика памятиДинамический анализ кода (DAST)Обход IDS/IPSОбратная инженерияВиртуализация для безопасностиОбучение и ОбразованиеArchived
GitHubmemn0ps/matrix-rs

matrix-rs

Rusty Hypervisor — гипервизор типа 2 «Blue Pill» (синяя пилюля) уровня ядра Windows, написанный на Rust (кодовое имя: Matrix)

Репозиторий
3564283 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Windows Kernel Blue Pill Type-2 Hypervisor в Rust (кодовое имя: Matrix)

License Issues Forks Stars

Блог: https://memn0ps.github.io/hypervisors-for-memory-introspection-and-reverse-engineering/

Лёгкий, безопасный с точки зрения памяти и молниеносно быстрый исследовательский гипервизор второго типа на Rust с хуками для Intel VT-x, ориентированный на изучение базовых концепций виртуализации.

Примечание: Гипервизор Illusion (Windows UEFI Blue Pill Type-1 Hypervisor на Rust) более стабилен, поддерживает больше функций и в целом имеет лучший дизайн. Гипервизор Matrix (Windows Kernel Blue Pill Type-2 Hypervisor на Rust) — более старая экспериментальная версия и не предназначен для промышленного использования. Оба проекта служат шаблонами, которые помогают новичкам начать разработку гипервизоров на Rust.

EPT Hooks Рисунок 0: Перехваты расширенных таблиц страниц (EPT) (Matrix)

Возможности

  • ✅ Расширенные таблицы страниц (EPT): поддержка регистров диапазона типов памяти (MTRR).
  • ✅ Обработка VM Exit: обработка ExceptionOrNmi (#GP, #PF, #BP, #UD), Cpuid, Getsec, Vmcall, Vmclear, Vmlaunch, Vmptrld, Vmptrst, Vmresume, Vmxon, Vmxoff, Rdmsr, Wrmsr, Invd, Rdtsc, , , , , .

Поддерживаемое оборудование

  • ✅ Процессоры Intel с поддержкой VT-x и расширенных таблиц страниц (EPT).
  • ❌ Процессоры AMD с поддержкой AMD-V (SVM) и вложенных таблиц страниц (NPT).

Поддерживаемые платформы

  • ✅ Windows 10 — Windows 11, только x64.

Установка

  1. Установите Rust отсюда.
  2. Переключитесь на Rust Nightly: rustup toolchain install nightly и rustup default nightly.
  3. Установите LLVM: winget install LLVM.LLVM.
  4. Установите инструменты: cargo install cargo-make cargo-expand cargo-edit cargo-workspaces.
  5. Установите WDK/SDK/EWDK: шаги здесь.
  6. Задайте переменную окружения WDKContentRoot, указывающую на путь установки WDK, если она не была задана автоматически при установке WDK:
root@kitploit:~
[System.Environment]::SetEnvironmentVariable("WDKContentRoot", "C:\Program Files (x86)\Windows Kits\10", [System.EnvironmentVariableTarget]::User)

Сборка проекта

  • Разработка: cargo make --profile development.
  • Релиз: cargo make --profile release.

Отладка

Включение режимов отладки

  • Тестовый режим: включите тестовую подпись с помощью bcdedit.exe /set testsigning on.
  • Отладка Windows: следуйте шагам из этого руководства Microsoft.
root@kitploit:~
bcdedit.exe /bootdebug {bootmgr} on
bcdedit.exe /bootdebug on
bcdedit.exe /debug on

Сетевая отладка с помощью Windbg

Настройка: bcdedit.exe /dbgsettings net hostip:w.x.y.z port:n.

Фильтр отладочного вывода

  1. Откройте regedit.exe.
  2. Перейдите в HKLM\SYSTEM\CurrentControlSet\Control\Session Manager.
  3. Создайте Debug Print Filter с параметром DEFAULT типа DWORD = 8.

Отладка через последовательный порт VMware

  1. Добавьте последовательный порт в VMware: «Use output file».
  2. Настройте в виртуальной машине Windows: $serialPort = New-Object System.IO.Ports.SerialPort COM2,9600,None,8,One; $serialPort.Open().

Управление службой

Используйте диспетчер служб (sc.exe) для создания службы гипервизора и управления ею:

root@kitploit:~
sc.exe create matrix type= kernel binPath= C:\Windows\System32\drivers\matrix.sys
sc.exe query matrix
sc.exe start matrix

Использование

  1. Настройка для VMware Workstation

    Соберите проект: следуйте инструкциям по сборке из предыдущих разделов, чтобы скомпилировать проект.

  2. Настройка VMware Workstation

    Настройте последовательный порт VMware для отладки.

VMware Serial Port Settings Рисунок 1: Настройки последовательного порта VMware

Убедитесь, что "Virtualize Intel VT-x/EPT or AMD-V/RVI" включена, а "Virtualize IOMMU (IO memory management unit)" также включена.

VMware Processors Settings Рисунок 2: Настройки процессора VMware

  1. Скопируйте драйвер

    Скопируйте драйвер matrix.sys в каталог C:\Windows\System32\drivers.

  2. Отладка через последовательный порт VMware

    Выполните сценарий PowerShell из раздела «Отладка через последовательный порт VMware», чтобы открыть последовательный порт.

  3. Загрузите гипервизор

    Используйте сценарий PowerShell load.ps1, показанный в разделе «Управление службой», чтобы создать и запустить службу гипервизора.

Load Hypervisor Рисунок 3: Загрузка гипервизора

PoC

Hypervisor PoC Setup Рисунок 4: Журналы и настройка PoC с Windbg

Hypervisor PoC Execute Рисунок 5: Журналы и выполнение PoC с Windbg

Благодарности, ссылки и мотивация

Огромное спасибо замечательным людям и ресурсам, которые сформировали этот проект. Особая благодарность всем перечисленным ниже. Хотя в своей работе я использовал не все эти ресурсы, они стали настоящими золотыми жилами информации и очень полезны всем, кто погружается в разработку гипервизоров, включая меня.

  • Daax (@daaximus): За его выдающийся бесплатный цикл материалов о разработке гипервизоров, который является одним из лучших доступных ресурсов и оказал огромное влияние на мою работу благодаря глубоким исследованиям и понятным объяснениям. Его поддержка и ответы на мои вопросы были неоценимы, когда я делал первые шаги в разработке гипервизоров:

    • 7 дней до виртуализации.
    • Виртуализация MMU через Intel EPT.
  • Satoshi Tanda (@tandasat): Руководства, проекты и структурированные обучающие программы Satoshi Tanda были невероятно полезны. Его подробные объяснения и вклад в GitHub значительно углубили моё понимание, и он стал отличным наставником на протяжении всего моего пути:

    • Разработка гипервизоров для исследователей безопасности.
    • Hypervisor 101 на Rust.
    • Дополнительные проекты: Hello-VT-rp, DdiMon, HyperPlatform, MiniVisorPkg.
  • Jess (@jessiep_): За его неоценимую поддержку и сотрудничество в нескольких областях этого проекта, важные идеи и экспертные знания, а также за быстрые ответы на мои вопросы.

  • Drew (@drew): За его помощь, рекомендации и быстрые ответы на мои вопросы по различным аспектам разработки гипервизоров.

  • Sina Karvandi (@Intel80x86): За его подробный бесплатный цикл «Hypervisor From Scratch»:

    • Серия руководств.
    • Репозиторий GitHub.

Сообщество и технические ресурсы

  • Secret Club: Идеи по системам античита и обнаружению гипервизоров, которые также вдохновили этот проект:

    • Обнаружение эмуляции системы от @Daax, @iPower, @ajkhoury, @drew.
    • Обнаружение гипервизора BattlEye от @vmcall, @Daax.
  • Другие важные ресурсы:

    • Руководство разработчика программного обеспечения Intel.
    • Maurice Heumann's (@momo5502) Обнаружение перехвата с помощью гипервизора.
    • Guided Hacking's Трансляция виртуальных адресов x64 на YouTube.
    • Тема на форуме UnKnoWnCheaTs от @namazso.
    • RVM1.5, Barbervisor, rustyvisor, orange_slice, mythril, uhyve, maystorm.
    • Разработка гипервизора AMD-V от Back Engineering, .

Помощники и соавторы

Особая благодарность:

  • Daax.
  • Satoshi Tanda (@tandasat).
  • Drew (@drew).
  • iPower (@iPower).
  • Namazso (@namazso).
  • Jess (@jessiep_).
  • Matthias @not-matthias.
  • @felix-rs / @joshuа.
  • Ryan McCrystal / @rmccrystal.
  • Jim Colerick (@vmprotect).

Лицензия

Этот проект лицензирован в соответствии с MIT License. Дополнительную информацию см. в подробностях о лицензии MIT.

Скачать инструмент
EptViolation
EptMisconfiguration
Invept
Invvpid
Xsetbv
  • ✅ Скрытые инлайн-хуки ядра: совместимые с PatchGuard хуки, использующие точки останова (int3).
  • ✅ Скрытые перехваты системных вызовов (Syscall): совместимые с PatchGuard хуки для записей функций в таблице дескрипторов системных служб (SSDT).
  • ✅ Изоляция и безопасность: собственная реализация глобальной таблицы дескрипторов (GDT), таблицы дескрипторов прерываний (IDT) и таблиц страниц для повышения безопасности и изоляции гипервизора. Благодарность @namazso за привлечение внимания к этой теме.
  • Matthias (@not-matthias): За его значимую работу над проектом amd_hypervisor, которая во многом вдохновила и повлияла на это исследование.

  • Nick Peterson (@everdox) и Aidan Khoury (@ajkhoury): За их глубокие исследования гипервизорной интроспекции и перехвата системных вызовов:

    • PatchGuard: интроспекция на основе гипервизора [P1].
    • PatchGuard: интроспекция на основе гипервизора [P2].
    • Перехват системных вызовов через регистр расширенного набора функций (EFER).
  • bluepill от @_xeroxz
  • hvpp от @wbenny.
  • HyperHide от @Air14.
  • Как AetherVisor работает под капотом, от M3ll0wN1ght.
  • Библиотека Rust для использования специфичной для x86 (amd64) функциональности и регистров (крейт x86 для Rust).
  • HyperBone от DarthTon (на основе легендарной версии Алекса Ионеску) на UnknownCheats.
  • Джоанна Рутковска: стояла у истоков концепции гипервизора Blue Pill, одна из самых ранних демонстраций концепции.