我只想知道如何在C ++中获取BIO信息。我尝试了以下选项但每个都有它的缺点。
我需要一个永久的解决方案,以c ++的形式提供BIO信息。
答案 0 :(得分:1)
尝试检测您是否在虚拟操作系统中是以各种方式完成的,并且取决于所使用的虚拟化软件。
在stackoverflow上已经有很多不同的问题。
没有特别的顺序,这里有一些文章,它们涵盖了所使用的各种虚拟化文件:
Detect virtualized OS from an application?
detect if application running on virtual box
64-bit windows VMware detection
How to identify that you're running under a VM?
http://www.codeproject.com/Articles/9823/Detect-if-your-program-is-running-inside-a-Virtual
答案 1 :(得分:1)
虽然Salgar打败了我,但更“安全”的方法之一就是使用CPUID指令,它通常适用于现代VM。我知道KVM,Microsoft和Xen使用一个大约0x40000000的CPUID叶子,它返回“你在虚拟机中”。不是100%确定VMWare是否也支持相同的 - 在“真正的”机器上,这些是保留的而不是使用。
这是一个讨论除CPUID之外的几个选项的页面: http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/detecting-x86-virtual-machines.html 并且有几个链接供进一步阅读。