Virtual machine 在没有AES-NI的情况下虚拟化CPU

Virtual machine 在没有AES-NI的情况下虚拟化CPU,virtual-machine,aes,cpu,virtualization,Virtual Machine,Aes,Cpu,Virtualization,我有一个使用AES-NI编译的应用程序,但应该在运行时根据cpuid选择实现。我想测试它是否真的能在没有这种专用指令的旧CPU上正常工作。VirtualBox无法提供帮助,因为CPU相同。如何在不访问旧CPU的情况下执行此类测试?只需伪造CPUID(和ecx)的返回结果~(1@MargaretBloom:但是,如果程序错误地执行了这个伪旧cpu不应该具有的指令,它将继续工作,而不是导致总线错误。当然,这是您所问的另一个问题。特别是,由于AES-NI不满足要求,因此无法在虚拟机中本机禁用它。您需要

我有一个使用AES-NI编译的应用程序,但应该在运行时根据cpuid选择实现。我想测试它是否真的能在没有这种专用指令的旧CPU上正常工作。VirtualBox无法提供帮助,因为CPU相同。如何在不访问旧CPU的情况下执行此类测试?

只需伪造CPUID(
和ecx)的返回结果~(1@MargaretBloom:但是,如果程序错误地执行了这个伪旧cpu不应该具有的指令,它将继续工作,而不是导致总线错误。当然,这是您所问的另一个问题。特别是,由于AES-NI不满足要求,因此无法在虚拟机中本机禁用它。您需要一个这样做的VM完整的JIT(不仅仅是修补关键指令)。VMware似乎能够做到这一点,但仅适用于ESX(读取昂贵的服务器解决方案)版本。