- PVSM.RU - https://www.pvsm.ru -
Известный гуру внутреннего устройства Windows и архитектуры ARM Алекс Ионеску опубликовал [1] на ресурсе 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 осуществлялось на следующих платформах.
Рис. Структура исходных текстов 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
Автор: ESET NOD32
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/115509
Ссылки в тексте:
[1] опубликовал: http://ionescu007.github.io/SimpleVisor/
[2] Источник: https://habrahabr.ru/post/279655/
Нажмите здесь для печати.