The software my company produces uses protection that is hardware locked.
I need a non-changeable hard drive SN, or a MAC address, etc, in order to protect my products and create licenses.
VM Ware is hiding all of the hardware and effectively eliminating my software protection.
This stops me from being able to create a valid license.
If I create a license on a VM, then it can be replicated as many times as someone wants, effectively eliminating any protection I have and giving them the ability to steal to their heart's content.
How can I fix this?
If you're using Macrovisions FlexLM as your copy production software then tie the key to a USB dongle such as the Hasp4 or Hasp/HL from Aladdin (http://www.aladdin.com/)
Basically you'll need to tie your copy protection to a USB device of some sort since their hardware identification information isn't spoofed by the software.
For what it's worth you would have the same problem with the hard drive serial number outside of VMWare thanks to tools like ghost. There are also tools that can change the SN to a desired string (or random string) blowing a hole in that as well. MAC addresses aren't perfect either on the bare metal. The end lesson is that copy protection only keeps the honest honest
I'm not using FlexLM - I'm using something that wraps my exe. It works quite well, except within VMware.
I doubt I'll ever consider a USB dongle...my clients are large corporations and they would never go for it, plus it's a lot of added expense, hassle, etc.
Can't VMware be configured to expose the MAC (or other hardware)?
MACs aren't perfect, but they rarely, if ever, change.
It seems VMware is basically a license to steal - I'm surprised Adobe, MS, etc hasn't shut this stuff down.
If most of your customer's are large(r) corporation they should already have enough incentive in the form of internal policies to prevent most of the copying that could occur.
Are the VM's running Windows or *nix? If they are running windows you could key off of the computer's SID (since that needs to be unique on a network) or a hash combining the MAC, SID and computer name. The trade off you are going to have to balance is the level of protection with the level of frustration for legitimate customers. The more secure you make your copy protection the more trouble real customers will have with it.
If you really wanted you could try to tie into the host's CPU serial number. I know intel chips since the P3 had an embedded SN, but I'm not sure about the AMD chips. That would get passed through to the guest however.