下你所需,载你所想!
汇集开发技术源码资料

判断程序是否运行在虚拟化平台取出平台标识

:1.368KB :1 :2021-11-13 16:10:07

部分简介

.子程序 IsGuestOS, 逻辑型, 公开, 程序是否运行在虚拟化平台之上。
.参数 virType, 文本型, 参考 可空, 提供变量用来接收虚拟化平台类型,仅返回真时此参才有效;("Microsoft Hv" -> VirtualServer、VirtualPC、Hyper-V)("VMwareVMware" -> VMware)("XenVMMXenVMM" -> XenHVM)("KVMKVMKVM" -> KVM) ...

' 实现原理:将 eax=0x1 ,调用 CPUID 指令之后,ecx 的高 31 位可以判断出是否在虚拟机中,如果 ecx 的高 31 位为 0 表示在虚拟机下,否则在主机下!
' 当在虚拟机中时,将 eax=0x40000000,在调用 CPUID 指令之后即可在 ebx ecx edx 中取出虚拟化平台类型的标识。
置入代码 ({ 184, 1, 0, 0, 0, 15, 162, 193, 249, 31, 131, 225, 1, 133, 201, 117, 7, 184, 0, 0, 0, 0, 201, 195 })
virType = 取空白文本 (12)
置入代码 ({ 184, 0, 0, 0, 64, 15, 162, 139, 69, 8, 139, 0, 137, 24, 137, 72, 4, 137, 80, 8, 184, 1, 0, 0, 0, 201, 194, 4, 0 })

判断程序是否运行在虚拟化平台取出平台标识

热门推荐

相关文章