zoukankan      html  css  js  c++  java
  • 反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   [rc] // 设置返回值
    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 }

    .......................

    等待继续测试!!

    https://files.cnblogs.com/tk091/InsideVm.zip

    测试成功,只反vm,不反vb

  • 相关阅读:
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺
    抽奖系统(记一次未完成的教训)
    Alpha冲刺
    Alpha冲刺
    Alpha冲刺 (2/10)
    Alpha 冲刺 (1/10)
    软工 团队第三次作业
  • 原文地址:https://www.cnblogs.com/tk091/p/2462540.html
Copyright © 2011-2022 走看看