• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

[代码]Delphi实现检测程序是否在VMWare中运行

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

代码转自“我在沉睡”的博客,经测试在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:

  1. Detect if your program is running inside a Virtual Machine
    http://www.codeproject.com/KB/system/VmDetect.aspx
  2. How to detect Virtual PC or VMWare from your program
    http://www.codegurus.be/codegurus/Programming/virtualpc%26vmware_en.htm
VirtualPC

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi712Word2发布时间:2022-07-18
下一篇:
delphi:TStringList的详细用法(转载)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap