|
@daax_rynd | |||||
|
Analyzed with @vm_call and offered improvements to BattlEye's VM detection. It was surprising this was their only method to detect generic hypervisors.
vmcall.blog/battleye-hyper…
|
||||||
|
||||||
|
Daax Rynd
@daax_rynd
|
14. sij |
|
Seems that there are two others found after more thorough analysis. Using xgetbv/xsetbv in a loop similar to the one in the article. XSETBV is an unconditionally exiting instruction so naturally it fits for the time based attack. 1/2
|
||
|
|
||
|
Daax Rynd
@daax_rynd
|
14. sij |
|
The other is using CPUID where EAX=0 to query CPU vendor information. For whatever reason, they loop these an exorbitant amount of times - 26,000 times. The rest of the code is virtualized with VMP - yikes. The perf overhead is extreme.
|
||
|
|
||