2

我的情况是这样的:如果许可文件从一个位置复制到另一个位置,我们有一个带有许可证的产品会成功停用。这也可以在 PC 上完美运行。但是,我们刚刚发现了一个不能按预期工作的用例:如果软件在 VM 中获得许可,并且 VM 被第二次复制和加载,这可以绕过许可证复制保护,因为软件认为它仍然是同一系统的一部分。有哪些技术可用于识别软件是否安装在虚拟系统中,以及该 VM 是否已被复制以规避复制保护?

我知道这是一个相当广泛的问题,但我并不是在寻找关于我应该如何实施复制保护的确切方法。我正在寻找如何检测虚拟机存在的可靠技术,以及检查哪些内容以确保虚拟机本身没有被复制。

如果我没有在正确的地方提出这个问题(StackOverflow 是否有一个用于广泛问答讨论的部分,而不是空白的“问问题得到答案”格式?),请将其移动到适当的位置。

4

1 回答 1

1

您可以使用 VMware API 来查找在同一 ESXserver(管理程序)上运行的 VM。我不确定这些是否可以跨 esx 服务器工作,但如果它们连接在同一个 vCenter 上可能是可能的。此外,还有一些方法可以在 VM 上进行服务发现,这些方法也需要特定服务的支持(在您的情况下,是您的软件)。我相信,当服务启动时,可以从来宾 VM 插入挂钩,并且可以从其他 VM 调用挂钩。

在您的情况下,假设您的程序出现在一个虚拟机中时,您可以插入钩子。并且说,如果 VM 被复制并且稍后当您的程序出现在复制的 VM 上时,调用钩子以查看服务是否在另一个 VM 上运行(您可以与钩子共享一些密钥,以便新的 VM 服务了解另一个人正在运行相同的密钥)

很久以前,我们在开发基于 vm 的项目时也做过类似的事情。但我现在不记得确切的细节了。

但我认为没有办法确定虚拟机是否被复制。

于 2013-10-04T12:58:57.380 回答