vmware - How to hide from a program that it is running on a virtual machine?

24
2013-08
  • Femto Trader

    Some software contains tests to see if they are running on a virtual machine.

    It's very unpleasant to see alert messages such as "Sorry, this application cannot run under a Virtual Machine." and have your software stopped!

    There are lots of legal reasons to override such tests. Moreover such limitations are (most of the time) not written in User License Agreements.

    So... how do I hide the fact that a Virtual Machine is running the program? I don't want programs that do this scan to successfully detect the VM that is running.

    I'm using a Virtual Private Server (VPS) with Hyper-V... I'm administrator of the Operating System (Windows 2003) installed on this VPS, not administrator of Hyper-V.

  • Answers
  • scherand

    In short, I think you just cannot. It's the discussion about malware trying to detect if it is running in a VM to avoid being detected by systems that use VMs to run code to check for malware.

    Some quick references are: VRT: How does malware know the difference between the virtual world and the real world? and The Dead Giveaways of VM-Aware Malware .


  • Related Question

    vmware - What would be the recommended hardware for a machine running Selenium tests in virtual machines
  • Questioner

    I am currently using VirtualBox on a Windows XP (32bit) host, with a triple core AMD Phenom 2.29GHz and 3½GB of RAM.

    I run Selenium 'hub' on one of the virtual machines, and various browser configurations with Selenium RC running on the others. I am seeing a performance issue that will prevent me from scaling this solution, so would like to put together a proposal for purchasing new hardware.

    Essentially the virtual machines will only be launching and driving web browsers. I suspect my current bottleneck is writing to the hard drive. Rather than trial and error hardware replacements/additions I would prefer to just get in some suitable hardware to handle my requirements.

    Has anyone solved this themselves, or perhaps a similar problem? What is the recommended hardware for a virtualization server where the VMs are running concurrently and all potentially writing to disk?

    Thanks, Dave


  • Related Answers
  • DrJekl

    Getting a dedicated hard drive for each VM should increase performance a lot. Also, a little more RAM couldn't hurt.

  • William Hilsum

    Selenium looks interesting, never heard of it before!

    Anyway, Desktop VM stuff such as Virtual PC, Virtual Box and VMware workstation are good for testing and if your CPU supports VT (or equivalent) are good, as you said, the biggest bottleneck is generally Disk IO.

    A Phenom should be good - I used to use Virtual PC before Microsoft bought it from connetix on a pentium 3 without many slow downs!)

    You have two options if you are seeing slow downs, get a additional hard drive and just use this for VM's (If you are sure that the problem relates to disk IO - start task manager and make sure cpu is less than 35% on average)

    Or, if you want to go down the whole hog of a new pc route, get the cheapest 64 bit pc, and load Hyper-V server on (ESXi is also good, but requires specific hardware that can get expensive to source). Hyper-V is brilliant at Windows (as you would guess!) and it is now getting a lot better at Linux.

    Hypervisor VM's over Desktop VM's just give that extra punch when it comes to hardware utilisation, however as I said, adding an additional hard drive (I mean physical, not partition) and using it just for VMs (either for storing VM files, or if the VM manager supports it, natively setting the hard drive as the VM's hard drive)