опция виртуализации диспетчера задач Windows 8

0

Я пытаюсь найти способ программно определить, что моя программа работает на виртуальной машине, насколько я знаю, для параллелей это не так.

На вкладке производительности диспетчера задач Windows 8 отображается опция "Virtaulization", что это значит? Когда я запускаю Windows 8 на виртуальной машине, он меняется на виртуальные процессоры и виртуальную машину: да, так некоторые из них, как Windows 8 обнаруживает, что он запущен на виртуальной машине, как Windows 8 обнаруживает, что он работает на виртуальной машине? Возможно ли получить эту информацию программно? Я пробовал как на параллелях, так и на vm ware, и оба отлично работают.

  • 0
    На моей настоящей Windows 8 диспетчер задач также показывает «Виртуализация: включена». Я считаю, что это указывает на то, что процессор поддерживает виртуализацию, а не то, что ОС работает в виртуальной машине.
Теги:
vmware
virtual-machine
parallels

2 ответа

1

На VMware вы можете проверить, что CD-привод vendor- должен быть "VMware" или "VMware, Inc." или что-то вроде этого.

Я не знаю о рабочей станции VMware, но на ESXi ваш MAC-адрес обычно начинается с "00:50:56". Вы тоже можете это использовать.

Посмотрите на virt-what. Возможно, вы можете перенести его в Windows.

А возможно, как обнаружить, что установка выполняется на виртуальной машине? могу помочь тебе.

1

Вы должны взглянуть на эту интересную статью Red Pill... or how to detect VMM using (almost) one CPU instruction от Joanna Rutkowska которая была здесь, но теперь мертва и может быть просмотрена только с помощью waybackmachine здесь и для Virtualization: Red Pill or Blue? Steven McElwee который также был здесь, но теперь его можно увидеть только здесь.

Вот код:

int swallow_redpill()
{
    unsigned char m[2+4], rpill[] = "\x0f\x01\x0d\x00\x00\x00\x00\xc3";
    *((unsigned*)&rpill[3]) = (unsigned)m;
    ((void(*)())&rpill)();
    return (m[5]>0xd0) ? 1 : 0;
}

Он должен возвращать 1, если работает на виртуальной машине, и 0, если нет.


Изменение: он может возвращать ложные срабатывания на современном процессоре и, по- видимому, лучше сочетать пару тестов вместе, чтобы убедиться, что результат реален.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню