Интересный вопрос о виртуальной машине
Как программно определить, запущена ли программа под виртуальной машиной? VMWare, например.
Точнее сказать не могу, никогда этим не занимался, может напишет кто пробовал.
Но ИМХО можно!
только, насколько я понимаю, определяется это не всегда штатно, иногда по косвенным признакам. попробуй поглядеть
http://www.xakep.ru/magazine/xa/087/072/1.asp
это "побег из vm ware" от криса касперски, там вроде был код определения.
Ну vmware то vmware, но автор же сказал "например", а виртуальных машин много... Connectix (сейчас Microsoft) VirtualPC, VMware, bochs, qemu и др. ... :confused:
Цитата: HexEdit
Ну vmware то vmware, но автор же сказал "например", а виртуальных машин много... Connectix (сейчас Microsoft) VirtualPC, VMware, bochs, qemu и др. ... :confused:
мне кажется, написать код, определяющий все виртуальные машины, это все равно, что написать код на ассемблере, который бы работал одновременно и под dos, и под windows, и под Linux, и под FreeBSD, и под MacOS. думаю стоит взять и разобраться с 3-4 самыми популярными. на мой взгляд, это VMware, Bochs, VirtualPC, может ещё какая-нибудь. Про wmvare сцылку дал, про отальное - чего не знаю, того не знаю :(
Ну думаю что, как писал в начале, по чипсету... Насколько я знаю, большинство "VM" имею специфические чипсеты (ну виртуальные естественно) и думаю что определить по нему не составляет проблемы.
Возможно есть еще какие-то виртуальные аппаратные компоненты, по которым можно определить...
Если в определенный порт(какой не помню) вывести побайтно shutdown, то Bochs закрывается как миленький:)
Т.е. если мы прошли это место и продолжаем работать, то с большой вероятностью можно предположить, что мы работаем не под Bochs
Если да, то хочешь устроить юзеру подлянку? ))
Цитата:
Закрывается полностью? Даже без вопросов?
Как реальный комп без UPS-а из розетки выдернуть ;)