2013-03-19 118 views
1

是否可以通过Action Script3(或更低版本)的代码检测到我在虚拟机下运行?使用AS3检测虚拟机

我知道有Capabilities类提供有关系统的一些信息,但它似乎不能完全满足我的需求。

也许在任何地方都没有这样的标志,但我可以依靠一些间接信息来理解环境是虚拟化的吗?

Regards, Sergey。

+0

你的问题非常含糊(你没有给出任何理由,所以我们不可能给你任何解决方法),但你试过['Capabilities.isDebugger'](http://help.adobe.com/en_US/ FlashPlatform /参考/动作/ 3 /闪光/系统/ Capabilities.html#isDebugger)? – 2013-03-19 19:03:37

+0

您是指ActionScript Virtual Machine本身还是运行AVM的系统? – 2013-03-20 03:55:49

+0

我们怀疑我们的在线游戏的一些玩家正在作弊,例如自动执行用户操作。如果我能从AS3检测到用户正在虚拟机(VMWare,VirtualBox,Virtual PC等)下运行浏览器 - 它可以成为我们进一步调查玩家操作的标志。 – user2187692 2013-03-20 07:03:16

回答

0

我怀疑检查这件事很容易,尤其是从浏览器插件沙箱这样的独立环境中。现代虚拟机可以非常准确地模拟一切,直到CPU寄存器,即使可以访问常规OS API,也很难检测到虚拟机。而当在浏览器中运行时,你甚至没有(使用AIR,你可以编写一个本地扩展)。您可以检查this thread获取一些可能有用的信息。

+0

是的,你是对的,浏览器访问OS API函数的权限非常有限,但我知道它提供了一些关于它正在运行的系统配置的信息。也许我使用浏览器/闪存引擎提供的操作系统参数之一,以及chech如何“真实”。例如,对于真正的操作系统,Capabilities.hasMultiChannelAudio参数可以是任何的,但对于VM,它始终是“DTE”(这只是一个猜测)。所以,我试图找到一些标志,告诉我“最有可能”客户端在虚拟机下运行。 – user2187692 2013-03-20 12:10:47