修改vSphere ESXi中虚拟机的CPUID

某些软件的加密会通过读取机器的CPUID来识别,如果在虚拟机中运行,可以更改CPUID,操作如下:

使用wmic CPU get ProcessorID命令,可以查看本机的CPUID,如下图:

cpuid01

目前CPUID为1FABFBFF000306E4,通过修改虚拟机的*.vmx文件来达到修改CPUID的目的,在*.vmx最后添加如下两行:

cpuid.1.eax = "CPUID的后32位"
cpuid.1.edx = "CPUID的前32位"

将现在的CPUID转换成2进制并拆分成两段,如下:

1FABFBFF转换成2进制后的CPUID的前32位为:00011111101010111111101111111111
000306E4转换成2进制后的CPUID的后32位为:00000000000000110000011011100100

假设本次想将CPUID修改为0FABFBFF000306E4,则转换成2进制后的两段码为(各进制的在线转换工具):

0FABFBFF转换成2进制后的CPUID的前32位为:00001111101010111111101111111111
000306E4转换成2进制后的CPUID的后32位为:00000000000000110000011011100100

最终在*.vmx中添加如下两行:

cpuid.1.eax = "00000000000000110000011011100100"
cpuid.1.edx = "00001111101010111111101111111111"

首先将虚拟机关机,再将*.vmx下载至本地,如下图

v6.5vmrc06

再使用Notepad++打开刚才下载的win2008-2.vmx,并添加红框中的两行内容,完成后保存退出。

v6.5vmrc07

将原来的win2008-2.vmx在虚拟化平台中重命名,如下图

v6.5vmrc08

利用上传按扭将修改过的win2008-2.vmx上传至原目录中,打开虚拟机电源

v6.5vmrc10

进入操作系统,再运行wmic CPU get ProcessorID,发现已经更改为0FABFBFF000306E4。

v6.5vmrc11

One Comment

  1. neo说道:

    你好,我虚拟化用的物理服务器安装了2个CPU,在虚拟的操作系统里面wmin 出2个ID顺序是:0FABFBFF000206C2 和 0FABFBFF000006C2
    目标ID2个顺序是:0FABFBFF000106A5和 0FABFBFF000006A5
    按照这个教程修改为:
    cpuid.1.eax = “00001111101010111111101111111111”
    cpuid.1.edx = “00000000000000010000011010100101”
    cpuid.2.eax = “00000000000000000000011010100101”
    cpuid.2.edx = “00001111101010111111101111111111”
    运行后显示:打开虚拟机的电源时,会收到来自 ESX 主机的错误。
    无法启动虚拟机。
    此虚拟机要求使用 FXSR。无法打开此虚拟机的电源。
    请问我的配置是否正确,可以有偿帮忙,非常感谢! 我的QQ:755489

Leave a Reply