ionescu007 / SimpleVisor

SimpleVisor is a simple, portable, Intel VT-x hypervisor with two specific goals: using the least amount of assembly code (10 lines), and having the smallest amount of VMX-related code to support dynamic hyperjacking and unhyperjacking (that is, virtualizing the host state from within the host). It works on Windows and UEFI.
http://ionescu007.github.io/SimpleVisor/
1.69k stars 259 forks source link

Clear the AC flag before capturing it #43

Open tandasat opened 4 years ago

tandasat commented 4 years ago

On some systems, the AC flag was already set when it is captured by SimpleVisor. This results in skipping initialization of the hypervisor and The SHV failed to initialize (0xFFFFFFFD) Failed CPU: 0 error because the subsequent check after capturing believes the hypervisor was already set up.

I found my VM (18362.1.amd64fre.19h1_release.190318-1202) hit this case.

This change clears the flag prior to capturing and checking the flag, ensuring initialization happens.

supperpiccle commented 2 years ago

I also ran into this exact problem in my testing.