VMware: Make applications see Windows VM as bare metal

In a virtual environment using VMware, I want to setup a Windows license server. Unfortunately, the vendor's license server refuses to run on a VM; it must be installed on a physical machine.

Since we have no physical Windows servers and don't want to have them: is it possible to set up a virtual environment which is mostly undetected by applications? How do applications detect that they are running on a virtual box?

I want to emphasize that we are not attempting to circumvent licensing requirements. This is just about avoiding cost for maintenance and energy for another mostly useless single point of failure.


Solution 1:

Unfortunately, I think there's too many different bits of virtual hardware that get stamped as VMware to completely mask the fact that it's a VM, and not a ton of ways to change what's getting presented.

However, there is some hope for tricking this specific application, if you can figure out what it's keying on and hide that information.

If it's keying on the hard drive's model info, you could try a directly mapped disk instead of a VMDK.

If it's looking for an 00:0c MAC address, easy fix.

First thing I'd try, though, would be to change the Product and Manufacturer strings exposed in the VM to use what's on the host instead - if I had to guess at what some bad licensing software would check, this would be my first guess.

Set SMBIOS.reflectHost = TRUE:

reflecthost

Solution 2:

I'd suspect you are violating the license for the software if you install it on a VM.

What you are asking is actually pretty difficult. VMware defined all sorts of fake hardware (ranging from disk drives to the motherboard), you have to trace the software and determine what it's accessing before it tells you to install it on a physical machine. Process Monitor might be of some help to you. You would be able to use it to trace a number of the system calls the application does, which may give you some indication as to what it's looking for.

As far as hiding the actual device, this is going to vary depending on what exactly the application is looking for. There's no 100% way to fully hide that VMware is active.