Как определить, что программа запущена на виртуальной машине
От: Аноним  
Дата: 13.02.11 02:12
Оценка:
Каким способом можно это сделать? Вроде как виртуальные машины имеют какие-то метки, позволяющие определить, что это виртуальная машина
Re: Как определить, что программа запущена на виртуальной ма
От: мыщъх США http://nezumi-lab.org
Дата: 13.02.11 03:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Каким способом можно это сделать? Вроде как виртуальные машины имеют какие-то метки, позволяющие определить, что это виртуальная машина

должен огорчить -- специальных меток нет. однако, если смотреть мак-адрес, наименования оборудования на борту, то можно кое-что обнаружить.
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.
Re: Как определить, что программа запущена на виртуальной ма
От: bnk СССР http://unmanagedvisio.com/
Дата: 13.02.11 04:13
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Каким способом можно это сделать? Вроде как виртуальные машины имеют какие-то метки, позволяющие определить, что это виртуальная машина


Простой вариант, который пользует сама M$ (в скриптах Microsoft Deployment Toolkit),
заключается в том, чтобы смотреть производителя материнской платы и серийный номер биоса через WMI.

Подробнее здесь

Для распространенных виртуальных машин: Virtual PC, Hyper-V, VMWare, Virtual Box, Xen, это работает.
Re: Как определить, что программа запущена на виртуальной ма
От: pq  
Дата: 14.02.11 20:59
Оценка:
Здравствуйте, Аноним, Вы писали:

http://www.codeproject.com/KB/system/VmDetect.aspx

Статья + Исходники
Чтобы система была устойчивой, переодически её надо трясти (с)
Re[2]: Как определить, что программа запущена на виртуальной
От: bnk СССР http://unmanagedvisio.com/
Дата: 15.02.11 05:18
Оценка:
Здравствуйте, pq, Вы писали:

pq>Здравствуйте, Аноним, Вы писали:


pq>http://www.codeproject.com/KB/system/VmDetect.aspx


pq>Статья + Исходники


Этот метод не работает для последних версий Virtual PC, а также Hyper-V, VirtualBox и x64. Еще один известный работающий "не везде" метод — Red Pill.
Насколько я понял, вообще все методы, основанные на "низкоуровневых трюках", весьма ненадежны. Например, вот список методов, которые работают "не везде".

Для себя выбрал производителя материнской платы и биоса. Плюс тот, что это работает для всех распространенных виртуальных машин и работает без "unsafe" кода.
Ну а минус тот, что если появится еще один производитель виртуальных машин, или, например, Microsoft в самом деле начнет выпускать материнские платы, то этот подход, очевидно, обломится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.