terça-feira, 14 de fevereiro de 2012

Delphi - Verificando se o programa está sendo executado no VMWARE.


function IsInsideVMWare: Boolean;
var
  rc: Boolean;
begin
  rc := False;
   try
    asm
    push   edx
    push   ecx
    push   ebx
    mov    eax, 'VMXh'
    mov    ebx, 0      
    mov    ecx, 10
    mov    edx, 'VX'
    in     eax, dx
    cmp    ebx, 'VMXh'
    setz   [rc]
    pop    ebx
    pop    ecx
    pop    edx
 end;
  except
    on EPrivilege do rc := False;
  end;
  Result := rc;
end;
begin
  Write(' Dentro do VMWare:');
      sInsideVMWare then
  WriteLn('Sim’);
 else
  WriteLn('Não');
end.

Nenhum comentário:

Postar um comentário