Каким способом можно это сделать? Вроде как виртуальные машины имеют какие-то метки, позволяющие определить, что это виртуальная машина
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, Аноним, Вы писали:
А>Каким способом можно это сделать? Вроде как виртуальные машины имеют какие-то метки, позволяющие определить, что это виртуальная машина
Простой вариант, который пользует сама M$ (в скриптах Microsoft Deployment Toolkit),
заключается в том, чтобы смотреть производителя материнской платы и серийный номер биоса через WMI.
Подробнее
здесь
Для распространенных виртуальных машин: Virtual PC, Hyper-V, VMWare, Virtual Box, Xen, это работает.
Здравствуйте, Аноним, Вы писали:
http://www.codeproject.com/KB/system/VmDetect.aspx
Статья + Исходники
Здравствуйте, pq, Вы писали:
pq>Здравствуйте, Аноним, Вы писали:
pq>http://www.codeproject.com/KB/system/VmDetect.aspx
pq>Статья + Исходники
Этот метод не работает для последних версий Virtual PC, а также Hyper-V, VirtualBox и x64. Еще один известный работающий "не везде" метод —
Red Pill.
Насколько я понял, вообще все методы, основанные на "низкоуровневых трюках", весьма ненадежны. Например,
вот список методов, которые работают "не везде".
Для себя выбрал производителя материнской платы и биоса. Плюс тот, что это работает для всех распространенных виртуальных машин и работает без "unsafe" кода.
Ну а минус тот, что если появится еще один производитель виртуальных машин, или, например, Microsoft в самом деле начнет выпускать материнские платы, то этот подход, очевидно, обломится.