Mega Code Archive

 
Categories / Delphi / Hardware
 

Detect if the program is running inside VMWare

Title: detect if the program is running inside VMWare? program detectvmware; {$APPTYPE CONSOLE} uses SysUtils; { This function can be used to determine whether your program is running from within VMWare. For more information please refer to the article at: http://www.rntsoft.com/system/VmDetect.asp } function IsInsideVMWare: Boolean; var rc: Boolean; begin rc := False; 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 end; except on EPrivilege do rc := False; end; Result := rc; end; begin Write('IsInsideVMWare:'); if IsInsideVMWare then WriteLn('Yes') else WriteLn('No'); end.