VirtualBox 欺骗 CPU 频率

VirtualBox 欺骗 CPU 频率

我想在 VirtualBox 中尽可能多地在客户机(Windows 10 x64)上伪造有关主机(Windows 10 x64)的信息。我已经使用伪造 CPU 品牌字符串但是,使用同样的策略来欺骗 CPU 频率(EAX 中的 cpuid 为 0x16)似乎不起作用。

我用 MSVC++ 编写了一个小测试程序来打印频率 cpuid 报告:

int freq[3];
__asm {
    mov eax, 0x16
    cpuid
    mov freq[0], eax
    mov freq[1], ebx
    mov freq[2], ecx
}

for (int i : { 0, 1, 2 }) {
    std::cout << freq[i] << std::endl;
}

一切按预期运行,并被正确欺骗,但是,客人仍然在几乎所有地方显示正确的信息,这表明它有其他来源。是否有可能识别并潜在地欺骗这个来源?

答案1

您可以使用以下命令修改 VirtualBox 中的整个 CPU 配置文件:

VBoxManage modifyvm "<VM name>" --cpu-profile "Intel Core i7-5600U"

查看文章 VirtualBox 中支持的 CPU 配置文件列表在哪里?

在接受的答案中,在.rdata部分发现了一些类型Oracle\VirtualBox\VBoxVMM.dll

另请参阅帖子 指定虚拟机看到的处理器类型

可以使用cpuidset命令的参数进行更多高级设置VBoxManage modifyvm。查看示例 这里。但是,我还没有找到所包含命令的文档。

答案2

在我这边,我删除了“CPU - 硬件加速”中的“嵌套分页”,问题就解决了

相关内容