We design, implement, and evaluate a practical timing-based approach to detect virtual machine monitors (VMMs) without relying
on VMM implementation details. The algorithms developed in this paper are based on fundamental properties of virtual machine
monitors rather than easily modified software artifacts. We evaluate our approach against two common VMM implementations on
machines with and without hardware support for virtualization in a number of remote and local experiments. We successfully
distinguish between virtual and real machines in all cases even with incomplete information regarding the VMM implementation
and hardware configuration of the targeted machine.