[코드] Delphi 구현 테스트가 VMWare에서 실행되는지 여부

1837 단어 vmware
코드는 '잠자고 있어요'블로그.에서 VMWare7.0.0에서 정상적으로 검사할 수 있다.
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;

Virtual PC를 감지할 수 있는 유사한 기능을 제공하는 링크도 있습니다.
  • Detect if your program is running inside a Virtual Machine http://www.codeproject.com/KB/system/VmDetect.aspx
  • How to detect Virtual PC or VMWare from your program http://www.codegurus.be/codegurus/Programming/virtualpc%26vmware_en.htm

  • Technorati 태그:
    Delphi ,
    Detect ,
    VMWare ,
    VirtualPC

    좋은 웹페이지 즐겨찾기