Hacker News Digest

18 сентября 2025 г. в 01:18 • tandasat.github.io • ⭐ 144 • 💬 13

OriginalHN

#rust#hypervisor#virtualization#x64#memory-virtualization#fuzzing#uefi

Hypervisor 101 in Rust

Введение в гипервизоры на Rust

1. Введение

  • Предварительные требования
  • Цели курса
  • Мотивация
  • Как достигаются цели
  • Что вы изучите
  • Дизайн фаззера
  • Дизайн гипервизора
  • Что этот курс НЕ охватывает
  • Демо: фаззер на основе гипервизора
  • Зачем использовать гипервизор для фаззинга
  • Приложения UEFI
  • Язык Rust
  • Классификация гипервизоров
  • Гипервизор vs хост, ВМ vs гость
  • Типы гипервизоров

2. Настройка и цикл работы гипервизора

  • Включение: активация аппаратной виртуализации
  • Настройка: создание структуры контекста гостя
  • Переключение: запуск в гостевом режиме
  • Возврат: переход обратно в режим хоста
  • Обработка: эмуляция событий
  • Цели и упражнения главы
  • Тестирование с Bochs
  • Подготовка к упражнениям
  • E#1: Включение VMX/SVM
  • E#2: Настройка VMCS/VMCB
  • E#3: Конфигурация гостевого состояния
  • Причины VM-выходов
  • Альтернативный дизайн гипервизора

3. Виртуализация памяти

  • Терминология
  • Традиционная страничная организация x64
  • Вложенная страничная организация
  • Связь с гипервизором
  • Ошибки страниц во вложенной организации
  • Структурные элементы вложенной организации
  • Сравнение традиционного и вложенного подходов
  • Цели и упражнения главы
  • E#4: Включение вложенной организации
  • E#5: Построение структур и трансляция адресов
  • E#6: Реализация copy-on-write и быстрого восстановления памяти
  • Продвинутые темы

4. Интроспекция ВМ для фаззинга

  • Проблема 1: Ненужное выполнение кода