C#怎么检测硬件虚拟化的状态?
类似securable这个软件的功能,包括CPU是否支持虚拟化,如果支持虚拟化怎么判断是否开启了硬件虚拟化。
一般来说这种监测都是涉及到调用系统API或者通过第三方类库来做的,而C#只是作为一个调用API方,本身的框架貌似没有提供这样的监测接口的
而且设备虚拟化状态,一般要检测的比较准确情况下很少在R3做的好的,因为有些设备虚拟化都是基于系统底层技术的(R0层)
那具体调用系统哪些API之类的,或者有什么第三方类库可用,请告知我一下
@Lyghost:
sorry,没做过类似应用,只是以前做过系统驱动这块的开发,也见过做设备虚拟机这块是在驱动层做的,你可以了解下DeviceIoControl这个函数,顺带查阅下设备信息获取的IRP,看看通过发送那些IRP请求可以获取设备的信息
@visonme: 好的 我研究一下 十分感谢
可以通过检测cpu指令集来实现,C#需要以shellcode方式内嵌asm代码,通过cpuid指令得到指令集,具体看amd和intel的相关文档
这有个具体实现
https://www.cnblogs.com/Charltsing/p/EasyHardwareID.html