![如何隐藏正在虚拟机上运行的程序?](https://linux22.com/image/1331427/%E5%A6%82%E4%BD%95%E9%9A%90%E8%97%8F%E6%AD%A3%E5%9C%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%9A%84%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
一些软件包含测试以查看它们是否在虚拟机上运行。
看到诸如“抱歉,此应用程序无法在虚拟机下运行”之类的警告消息并导致软件停止运行是非常令人不快的!
有很多法律理由可以推翻此类测试。此外,此类限制(大多数情况下)并未写在用户许可协议中。
那么...我该如何隐藏虚拟机正在运行该程序的事实?我不希望执行此扫描的程序成功检测到正在运行的虚拟机。
我正在使用带有 Hyper-V 的虚拟专用服务器 (VPS)...我是安装在此 VPS 上的操作系统 (Windows 2003) 的管理员,而不是 Hyper-V 的管理员。
答案1
简而言之,我认为你根本做不到。这是关于恶意软件试图检测它是否在虚拟机中运行以避免被使用虚拟机运行代码检查恶意软件的系统检测到的讨论。
一些快速参考如下:VRT:恶意软件如何知道虚拟世界和现实世界的区别?和可识别虚拟机的恶意软件的致命漏洞。
答案2
据我所知,这取决于您使用的虚拟化类型。
让我们开始说你肯定可以缓解一些事情(例如更改 MAC 地址、卸载客户添加)。
也就是说,如果您运行的是完全虚拟化,虚拟机管理程序会为客户机模拟硬件。模拟的 CPU 将拥有自己的(软件)时钟,迟早会显示不同的速度,而这本来不应该出现。
这是您无法以任何方式修复的事情之一,并且程序(主要是恶意软件)会知道它正在虚拟机中运行。
您可以使用半虚拟化直接获得它,即在封闭环境中使用真实硬件。