Pull to refresh
0

На GitHub опубликован исходный код компактного гипервизора

Reading time2 min
Views33K
Известный гуру внутреннего устройства Windows и архитектуры ARM Алекс Ионеску опубликовал на ресурсе GitHub исходный текст базовой части гипервизора (инструмент виртуализации). Гипервизор содержит в себе множество замечательных свойств, включая, компактный размер, поддержку современных архитектур микропроцессоров, минимальное использование ассемблера в исходных текстах, а также комментарии по его использованию. При его разработке упор делался на максимальную компактность.



Опубликованный проект является настоящей находкой для системных программистов, а также исследователей по безопасности, которые интересуются низкоуровневыми функциями ОС. Гипервизор получил название SimpleVisor, поддерживает только современные 64-битные системы и был успешно протестирован на совместимость с такими системами как Windows 8.1 на микропроцессоре архитектуры Intel Haswell, а также Windows 10 на архитектуре Intel Sandy Bridge.

Not counting the exhaustive comments which explain every single line of code, and specific Windows-related or Intel-related idiosyncrasies, SimpleVisor clocks in at about 500 lines of C code, and 10 lines of x64 assembly code, all while containing the ability to run on every recent version of 64-bit Windows, and supporting dynamic load/unload at runtime.

Как видно из аннотации, исходный код SimpleVisor занял всего 500 строк кода на языке C и 10 строк 64-битного ассемблера. Сам проект был собран с использованием Visual Studio 2015 и эта среда также может быть использована для его сборки.

Тестирование SimpleVisor осуществлялось на следующих платформах.

  • Windows 8.1 на микропроцессоре Haswell (настольный ПК)
  • Windows 10 Redstone 1 на микропроцессоре Sandy Bridge (ноутбук Samsung 930)
  • Windows 10 Threshold 2 на микропроцессоре Skylake (планшет Surface Pro 4 Tablet)
  • Windows 10 Threshold 2 на микропроцессоре Skylape (ноутбук Dell Inspiron 11-3153 SGX)


Рис. Структура исходных текстов SimpleVisor.


Рис. Часть кода asm64 из файла shvx64.asm, который отвечает за тонкости работы с микропроцессором AMD64.

SimpleVisor представляет из себя 64-битный драйвер, предназначенный для запуска в 64-битных версиях Windows 8.1 и Windows 10. Для успешного запуска в системе, драйвер должен быть подписан цифровой подписью, например, с использованием т. н. тестового сертификата. Далее, в Windows следует включить соответствующий режим загрузки драйвера с такой подписью с помощью известной команды bcdedit.

bcdedit /set testsigning on

Далее следует создать сервис драйвера для диспетчера управления сервисами, это можно сделать, воспользовавшись следующей командой.

sc create simplevisor type= kernel binPath= "<PATH_TO_SIMPLEVISOR.SYS>"

Драйвер SimpleVisor поддерживает как загрузку так и выгрузку «на лету». Для этого можно использовать следующие команды.

net start simplevisor
net stop simplevisor
Tags:
Hubs:
Total votes 33: ↑30 and ↓3+27
Comments37

Articles

Information

Website
www.esetnod32.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Словакия