init
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
.CODE
|
||||
|
||||
Asm_CheckVmWare PROC
|
||||
|
||||
mov rax, 0564D5868h ; 魔法值 'VMXh',VMware端口通信固定标识
|
||||
mov rbx, 0FFFFFFFFh ; RBX初始值,用于接收Hypervisor返回标识
|
||||
mov rcx, 10 ; 命令号 10 = CMD_GetVersion(获取VMware版本)
|
||||
mov rdx, 05658h ; VMware专属I/O端口号 0x5658
|
||||
in eax, dx ; 向VMware端口发起通信请求
|
||||
cmp rbx, 0564D5868h ; 判断RBX是否被改写为'VMXh'魔法值
|
||||
jz vm_found ; 相等 = 检测到VMware,跳转
|
||||
|
||||
xor al, al ; 未找到,AL置0(FALSE)
|
||||
jmp vm_end
|
||||
|
||||
vm_found:
|
||||
mov al, 1 ; 找到VMware,AL置1(TRUE)
|
||||
vm_end:
|
||||
ret
|
||||
|
||||
Asm_CheckVmWare ENDP
|
||||
|
||||
|
||||
Asm_VMCall PROC
|
||||
vmcall
|
||||
ret
|
||||
Asm_VMCall ENDP
|
||||
|
||||
|
||||
|
||||
END
|
||||
Reference in New Issue
Block a user