1
75
你听说了吗 blue pill, red pill? . 这是一种用于查看您是否在虚拟机中运行的技术。这个词起源于 the matrix movie
以下代码将检测您是否在“矩阵”中运行:
在虚拟机内运行时,函数将返回1,否则返回0。 |
2
24
解码 (我在CentOS和Ubuntu上都有) 男人说:
所以我搜索了输出,发现它可能是微软的Hyper-V
另一种方法是搜索eth0的MAC地址与哪个制造商相关: http://www.coffer.com/mac_find/ 如果它返回Microsoft、vmware&等那么它可能是一个虚拟服务器。 |
3
14
VMware有一个 Mechanisms to determine if software is running in a VMware virtual machine 有一些源代码的知识库文章。 微软也有一个关于 "Determining If Hypervisor Is Installed" . MS在其手册的“IsVM测试”部分中详细说明了虚拟机监控程序的这一要求 "Server Virtualization Validation Test" VMware和MS文档都提到使用CPUID指令检查虚拟机监控程序的当前位(寄存器ECX的第31位) RHEL bugtracker有一个 "should set ISVM bit (ECX:31) for CPUID leaf 0x00000001" 在Xen内核下设置寄存器ECX的第31位。 因此,在不涉及供应商详细信息的情况下,您似乎可以使用CPUID检查来了解您是否在虚拟运行。 |
4
12
QEMU ,模拟整个机器,直至硬件寄存器。让我们扭转这个局面:你想做什么?也许我们能帮上忙。 |
5
12
我认为,在未来,依靠像破碎的SIDT虚拟化这样的技巧并不能真正起到帮助作用,因为硬件填补了奇怪而混乱的x86体系结构留下的所有漏洞。最好的办法是游说虚拟机提供商提供一种标准的方式来判断您是否在虚拟机上——至少在用户明确允许的情况下是这样。但是如果我们假设显式地允许检测VM,那么我们也可以在其中放置可见的标记,对吗?我建议用一个文件来更新虚拟机上的磁盘,告诉您在虚拟机上——例如,文件系统根目录中的一个小文本文件。或者检查ETH0的MAC,并将其设置为给定的已知字符串。 |
6
8
它会回来的
|
7
7
我想推荐一篇发表在Usenix HotOS'07上的论文, 兼容性不是透明性:VMM检测神话与现实 ,它总结了几种判断应用程序是否在虚拟化环境中运行的技术。
|
8
6
在安装newes Ubuntu时,我发现了一个名为imvirt的包。请看一看 http://micky.ibh.net/~liske/imvirt.html |
9
6
此C函数将检测VM来宾操作系统:
|
10
6
在linux上,systemd提供了一个命令,用于检测系统是否作为虚拟机运行。
命令:
如果系统是虚拟化的,则会输出虚拟化软件/技术的名称。
如果没有,则输出
例如,如果系统正在运行KVM,则:
你不需要像sudo那样运行它。 |
11
5
在Linux下,您可以在/proc/cpuinfo上报告。如果是在VMware中,它的表现通常与在裸机上不同,但并不总是如此。Virtuozzo展示了对底层硬件的传递。 |
12
5
|
13
4
virt-what . 它使用前面提到的dmidecode来确定您是否在虚拟化主机上以及类型。 |
14
4
我尝试了朋友建议的另一种方法。在VMWARE上运行的虚拟机没有CPU温度属性。i、 它们不显示CPU的温度。我正在使用CPU温度计应用程序检查CPU温度。
所以我编写了一个小的C程序来检测温度传感器
|
15
3
我用这个
sysInfo.cs
用法:
|
16
1
我想出了一种通用的方法,只需一行代码就可以检测每种类型的windows虚拟机。它支持win7--10(xp尚未测试)。 为什么我们需要通用的方法?
出身背景我为此工作了好几个月。我做了很多测试,观察到: win32_端口连接器 在虚拟机上始终为null和空。请参阅完整报告
给我看代码基于这些测试,我制作了一个可以检测windows虚拟机的小程序。
read code 或者 compiled executable . 稳定性它在许多环境中经过测试,非常稳定。
|
McBooley · 如何停止重新启动后启动的ROS脚本 6 年前 |
Hayden Smith · Pycurl导入错误:SSL后端不匹配 6 年前 |
Riky Proti · Putty,SSH“拒绝访问” 6 年前 |
murtho · 流浪者主机管理器不能让机器“活着” 6 年前 |