20100515

Эх, работа

В всязи с кошмаром работой (новой). Статья откладывается на неизвестное мне время. Извиняюсь. Но, по просьбам трудящихся выложу сюда
1) Ссылки на литературу и другую полезную информацию.
2) Некую болванку с которой можно начинать трудится самим.

и так

Литература и другая полезная информация.

1) Мануалы интела. А именно: Intel 64 and IA-32 Architectures Software Developer`s Manual. Volum 3B: System programming Guide Part 2 (start from Chapter 19)
2) http://bluepillproject.org/
nbp-0.32-public (blue pill). От великого 90210 (привет, если вдруг ты это читаешь) и Рутковской. Написано на С\asm. Довольно специфично, но познавательно.
IsGameOver.ppt - красиво и доходчиво оформлено.
3) http://www.securevm.org/bitvisor.html
Японский виртуализатор. Сложен для начинающих, но зато более полный и законченный по функционалу. (Сайт можете перевести гуглом)
4) http://northsecuritylabs.com/
Детектор виртуалок, и руткитов на основе виртуализации. Для изучения работы - сойдет.
5) http://virusinfo.info/showthread.php?t=6287&page=5
Тут можно найти Rootkit Unhooker - детектор руткитов и всяких зловредов. Отслеживаются новые версии. 

Собственно этого должно хватить для изучения виртуализации. Советую начать вначале с манов интела и из реального режима перейти в 32\64 битный и включить эту виртуализацию. Поиграться с ней там. И потом уже хорошенько думать над тем, как заставить виндовс (а кому линукс?) перейти в режим гостевой ОС. Кстати довольно интересно - попробуйте сделать свой miniOS и запустите ее параллельно с Window OS. Ну и как говорится - почувствуйте силу.

Болванка
Это простой 32 битный драйвер. Включает и выключает режим виртуализации. Работает под Windows NT (проверял на XP и 7). Собрано на masm32. С использованием заголовочных файлов из KmdKit (Four-F и вам привет большой).
Вывод можете ловить windbg или debugview. Но лучше сделайте вывод в COM порт своими силами. Пригодится в будущем (кстати эта процедура есть в nbp если хорошо поищите).
Файлы тут
Сборка:

D:\ASM\masm32\BIN\ML.EXE /nologo /c /coff "Virtualize.asm"
 Assembling: Virtualize.asm
D:\ASM\masm32\BIN\LINK.EXE /nologo /driver /base:0x10000 /align:32 /out:ndissin.sys /subsystem:native /ignore:4078 /OUT:"Virtualize.sys" "Virtualize.obj"

На этом пока все.