首页 新闻 会员 周边

C#怎么检测硬件虚拟化的状态?

0
悬赏园豆:100 [已解决问题] 解决于 2016-09-05 13:57

C#怎么检测硬件虚拟化的状态?

类似securable这个软件的功能,包括CPU是否支持虚拟化,如果支持虚拟化怎么判断是否开启了硬件虚拟化。

Lyghost的主页 Lyghost | 初学一级 | 园豆:78
提问于:2015-07-08 09:17
< >
分享
最佳答案
0

一般来说这种监测都是涉及到调用系统API或者通过第三方类库来做的,而C#只是作为一个调用API方,本身的框架貌似没有提供这样的监测接口的 

而且设备虚拟化状态,一般要检测的比较准确情况下很少在R3做的好的,因为有些设备虚拟化都是基于系统底层技术的(R0层)

收获园豆:100
visonme | 小虾三级 |园豆:1674 | 2015-07-08 14:46

那具体调用系统哪些API之类的,或者有什么第三方类库可用,请告知我一下

Lyghost | 园豆:78 (初学一级) | 2015-07-08 14:51

@Lyghost: 

sorry,没做过类似应用,只是以前做过系统驱动这块的开发,也见过做设备虚拟机这块是在驱动层做的,你可以了解下DeviceIoControl这个函数,顺带查阅下设备信息获取的IRP,看看通过发送那些IRP请求可以获取设备的信息

visonme | 园豆:1674 (小虾三级) | 2015-07-08 15:56

@visonme: 好的 我研究一下 十分感谢

Lyghost | 园豆:78 (初学一级) | 2015-07-08 15:57
其他回答(1)
0

可以通过检测cpu指令集来实现,C#需要以shellcode方式内嵌asm代码,通过cpuid指令得到指令集,具体看amd和intel的相关文档
这有个具体实现
https://www.cnblogs.com/Charltsing/p/EasyHardwareID.html

Charltsing | 园豆:204 (菜鸟二级) | 2022-05-12 14:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册