这个问题,可以往大里回答,也可以往小里回答。如果往大里回答的话,那就是设计到反虚拟化和反调试技术了,可以推荐论文《Towards an Understanding of Anti-virtualization and Anti-debugging Behavior in Modern Malware》,百度学术里有,你可以去参阅一下,我是没有能力写长篇大论的,很多技术也不太明白;如果往小里回答,我有几个小技巧可以让你基本判断一下的。

个人虚拟机现在的流行种类不外乎3种,一种是你提问图里的vmware,一种是Oracle VM VirtualBox,还有一种是windows自带的haper-v(前身是Microsoft Virtual PC)。这3种虚拟机,除了haper-v我没有测试过,其它2种我测试了一下,都可以根据进程来判断。

一、是否vmware虚拟机的判断办法

虚拟机的进程中有vmtoolsd.exe这个名字,我们可以写一个简单的vbs来判断一下,代码如下:

怎么看虚拟机是centos还是Ubuntu 判断是不是虚拟机_其他

执行一下:

怎么看虚拟机是centos还是Ubuntu 判断是不是虚拟机_其他_02

当然你用命令:tasklist |find 'vmtoolsd.exe',和我写的vbs是一个道理。

如果你觉得我的方法太单一了,肯定还会有细心的人说vmware没有装vmware tools你的办法就失效了,那么我再推荐你一个工具,地址在http://www.trapkit.de/tools/scoopyng/,这个工具有源码的,里边有5种办法判断你是否采用的vmware虚拟机,虽然是2008年的工具,但我在最新的vmare14版上依然有效。

怎么看虚拟机是centos还是Ubuntu 判断是不是虚拟机_其他_03

二、是否Oracle VM VirtualBox的判断办法

你依旧可以用我的vbs代码来判断,只需把vmtoolsd.exe换成VBoxTray.exe就可以了。这次我们用命令判断,tasklist |find 'VBoxTray.exe'。如果有,证实是虚拟机。

怎么看虚拟机是centos还是Ubuntu 判断是不是虚拟机_其他_04

三、其它

至于如何判断是否采用了haper-v,仔细分析一下进程应当也可以找到办法。不过如果你开启了haper-v,好像有个说法是整个windows系统都变成了一个虚拟机了。另外,还有很多大型企业采用的Citrix,我也没有做过测试。这个回答一是提问提太大了,二是涉及到的范围太广了,我只希望抛砖引玉一下,希望大家有更精彩的回答吧。

不过话又说回来,也许整个人类都不知道自己是否活在一个外星人的虚拟机中呢?