如何隐藏在虚拟机上运行的程序?


13

某些软件包含测试,以查看它们是否在虚拟机上运行。

看到警告消息,例如“抱歉,该应用程序无法在虚拟机上运行”,这非常令人不快。并停止您的软件!

有很多法律上的理由可以覆盖此类测试。此外,此类限制(大多数情况下)并未写在用户许可协议中。

那么...如何隐藏虚拟机正在运行程序的事实?我不希望执行此扫描的程序成功检测正在运行的VM。

我正在将虚拟专用服务器(VPS)与Hyper-V配合使用...我是此VPS上安装的操作系统(Windows 2003)的管理员,而不是Hyper-V的管理员。


1
您能否阐明“隐藏程序”的含义?另外,您要尝试运行什么软件?
安德森·格林

@AndersonGreen,表示要阻止程序检测到该程序正在VM中运行。
Synetech 2012年

因此,让我直接说一下,您正在VM中运行的软件,并且您不希望主机上的软件检测到VM中正在运行某些软件,对吗?
user88311 2012年

1
你要小心点 如果程序有意检查其是否在调试/虚拟环境下运行,则很有可能试图强制执行其许可协议中列出的特定声明。篡改VM可能直接违反了EULA。
bytebuster 2012年

1
@bytebuster我在我的问题中说:“而且(大多数时候)这些限制不是写在用户许可协议中的。” ...所以我知道有时被禁止这样做...有时被允许...我不要寻求法律建议,而是寻求技术建议!
Femto Trader

Answers:


1

简而言之,我想你就是做不到。这是有关恶意软件试图检测其是否正在VM中运行的讨论,以避免被使用VM运行代码以检查恶意软件的系统检测到。

以下是一些快速参考:VRT:恶意软件如何知道虚拟世界与现实世界之间的区别?以及可识别VM的恶意软件的绝迹


1
完全不同意,您的说法是错误的。检测到它是虚拟化环境,使恶意软件更容易完成工作。还应考虑到有一些反恶意软件和反病毒实验室需要运行VM来隔离其研究,并且需要在这些VM中植入恶意软件,并且需要隐藏实例是虚拟实例的事实。这就是ESXi / VSphere允许设置标志以隐藏VM是VM的事实的确切原因。
马提亚斯·沃尔夫

我也强烈不同意带有消费级卡的NVidia GPU直通。NVidia驱动程序执行“ VM”检查,但安装失败,错误代码为43,但快速的Google找到了解决方法。当涉及到这样的东西时,它是猫和老鼠不断的游戏。
FreeSoftwareServers

我认为这个答案是正确的,或者更确切地说,如果它说发现“现在”起作用的任何东西在一段时间后可能不起作用,因为这在许多方面都是一种“军备竞赛”(尤其是与恶意软件有关) ),因此检测手段与阻碍检测的手段随着时间的推移不断变化和发展。
Chuck van der Linden

0

据我所知,这取决于您使用的虚拟化类型。

让我们开始说,您当然可以减轻一些麻烦(例如更改MAC地址,卸载来宾添加项)。

就是说,如果您运行的是完全虚拟化,则虚拟机监控程序将为来宾模拟硬件。仿真的CPU将具有其自己的(软件)时钟,该时钟将在不该显示的时钟上早晚显示不同的速度。

这是您无法以任何方式修复的事情之一,程序(通常是恶意软件)会知道它正在VM中运行。

您可以使用半虚拟化(包括在封闭环境中使用实际硬件)来实现它。


我想说,这同样取决于您使用的是什么超级管理程序,以及该软件正在执行的检查以查看其是否在VM中。
FreeSoftwareServers
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.