VMware does have this more or less built-in under "Access Control":

The type of restrictions can be managed or fixed. Managed apparently lets you manage instances from your VMware cloud account. Also check out "VMware Solution Exchange (VSX)" for more information on virtual appliances using VMware.
Simply expire your software after a given time and abuse should be preventable.
Also generally VMware assigns a new uuid.bios
value (see the .vmx
file) and a MAC address based on that. You can probably tie your software to that MAC address. But it's probably a weaker protection than limiting the VM to one month at a time, say.
Another way would be to require the VM to have internet access and devise a licensing scheme where the server returns required data only if your restriction criteria are met.
But really DRM is a double-sided sword and seldom effective against the determined attackers. Come over to RE.SE to find out more.
In the "Advanced Restrictions" dialog reachable if you pick "Fixed" for the type of restriction and click the focused (in the screenshot) "Adcanced" button, you see this:
