Если вы хотите обычно обнаруживать наличие любого типа виртуализации, вам лучше всего проанализировать характеристики производительности. Возьмите что-то, что значительно медленнее в виртуализации (например, тяжелую рабочую нагрузку MMU, например, бомбу-бомбу), и сопоставьте ее с обычным приложением пространства пользователя, связанным с ЦП. Из соотношения можно легко отличить.
Самое простое с точки зрения усилий, если вы заботитесь только об определенных VMM, это искать их оборудование, т.е. устройства VMware PCI:
00: 07.3 Мост: Intel Corporation 82371AB / EB / MB PIIX4 ACPI (версия 08)
Подсистема: VMware Inc Чипсет виртуальной машины
15ad: 1976
Значение поставщика - 15ad
Существуют также специальные бэкдор-порты, которые работают в разных VMM в разных версиях. Трюк SIDT тоже хорош, но что если VMM нет в списке, который проверяет его код?