qq70191 发表于 2015-4-10 08:12:07

反VM测试----成功

1 BOOL CInsideVmDlg::IsInsideVm()
2 {
3   bool rc = true;
4   
5   __try
6   {
7         __asm
8         {
9             push   edx
10             push   ecx
11             push   ebx
12               
13             mov    eax, 'VMXh'
14             mov    ebx, 0// 将ebx设置为非幻数’VMXH’的其它值
15             mov    ecx, 10 // 指定功能号,用于获取VMWare版本,当它为0x14时用于获取VMware内存大小
16             mov    edx, 'VX' // 端口号
17             in   eax, dx // 从端口dx读取VMware版本到eax
18             //若上面指定功能号为0x14时,可通过判断eax中的值是否大于0,若是则说明处于虚拟机中
19             cmp    ebx, 'VMXh' // 判断ebx中是否包含VMware版本’VMXh’,若是则在虚拟机中
20             setz    // 设置返回值
21               
22             pop    ebx
23             pop    ecx
24             pop    edx
25         }
26   }
27   __except(EXCEPTION_EXECUTE_HANDLER)//如果未处于VMware中,则触发此异常
28   {
29         rc = false;
30   }
31   
32   return rc;
33 }
  .......................
  等待继续测试!!
  http://files.iyunv.com/tk091/InsideVm.zip
  
  测试成功,只反vm,不反vb
页: [1]
查看完整版本: 反VM测试----成功