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

в 15:53, , рубрики: windows, Блог компании ESET NOD32

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

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

Опубликованный проект является настоящей находкой для системных программистов, а также исследователей по безопасности, которые интересуются низкоуровневыми функциями ОС. Гипервизор получил название 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)

На GitHub опубликован исходный код компактного гипервизора - 2
Рис. Структура исходных текстов SimpleVisor.

На GitHub опубликован исходный код компактного гипервизора - 3
Рис. Часть кода 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

Автор: ESET NOD32

Источник


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js