У меня встроенная функция ассемблера обнаруживает запуск программ на виртуальной машине или нет. Но в 64-битной встроенной сборке больше нет, здесь x64 intrinsics теперь. Есть ли другой способ его обнаружения?Обнаружение виртуализации
Вот код работает для 32-битных VMWare
BOOL IsInsideVMWare (аннулируются) {
BOOL гс = истина;
__try
{
__asm
{
push edx
push ecx
push ebx
mov eax, 'VMXh'
mov ebx, 0 // any value but not the MAGIC VALUE
mov ecx, 10 // get VMWare version
mov edx, 'VX' // port number
in eax, dx // read port
// on return EAX returns the VERSION
cmp ebx, 'VMXh' // is it a reply from VMWare?
setz [rc] // set return value
pop ebx
pop ecx
pop edx
}
} __except (фильтр (GetExceptionCode()))
{ гс = ложь; }
возвращение rc; }