Detecting Virtual Machines from Installer

Hi,

i want to detect from my usermode installer whether i am running inside real hardware or inside a virtual system. Mostly i am targeting VirtualPC/Server, QEMU, VMWare and VirtualBox. Depending on that information i want to install different files with my installer. I have found lots of interesting approaches and i would like to ask you which one you would consider the most reliable. Here are some described:

http://handlers.sans.org/tliston/ThwartingVMDetection_Liston_Skoudis.pdf

TIA

K.

> Hi,

i want to detect from my usermode installer whether i am running inside real
hardware or inside a virtual system. Mostly i am targeting VirtualPC/Server,
QEMU, VMWare and VirtualBox. Depending on that information i want to
install different files with my installer. I have found lots of interesting
approaches and i would like to ask you which one you would consider the
most reliable. Here are some described:

http://handlers.sans.org/tliston/ThwartingVMDetection_Liston_Skoudis.pdf

Any decent VM product should have a published way of detecting it, possibly as simple as asking what the BIOS and system ID’s are. If you want to try and detect a VM that is trying to avoid detection then you’ll need to explain in a little more detail why you want to do this… certainly detecting a VM that doesn’t want to be detected from user mode is likely a battle you will lose.

James

>then you’ll need to explain in a little more detail why you want to do this

I want to enable/disable several features in my code and install different library/executable files depending on the environment (real or emulated) i am running on. As seen from the link with the document, there are different ways doing this. I would like to know what others think is the most reliable way.