我想在 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 - 硬件加速”中的“嵌套分页”,问题就解决了