I am working on some method to protect my software with a license. Doing some wmi calls to uniquely distinguish computers and making sure there cannot be loaded multiple instances of the application.

I came to think though when the application is installed on a virtual machine (MS Virtual PC, VMWare, Virtual Box etc.) and licensed on that - would it is possible to clone the Virtual PC and then start multiple instances of the virtual PC on the same physical PC and still distinguesh the virtual PC's hardware (or other different) information from eachother?

Untill now I've looked a lot for wmi call's info differences and it seems like they are totally identical (I've checked two clones of the same pc image using Microsoft Virtual PC).

3 Answers
3

you could also try using hostid or combination of MAC and IP. like it or not MAC and IP addresses have to be different for VMs as well. Just bit cumbersome to generate keys based on IP/MAC for every instance, but if you could automate that, it might be a solution.

That might be the thing I am looking for. The application I've written is for computers not necessarily connected to a network though. So there might not even be a network device present. On the other hand most recent PCs has built-in network devices. I am still hoping for a slightly different solution distinguishing virtual PCs.
–
HenrikJan 27 '10 at 14:12

i guess you can also try checking if disk id assigned by VM software (vmware or virtual pc) is different when you clone VMs and use that instead of mac/ip
–
rytisJan 27 '10 at 15:03

2

They seem identical also. As the MAC address is also identical on each virtual machine. Furthermore I came to think that using the MAC/IP would require the user never to have a dynamic ip since that would become a part of the license then.
–
HenrikJan 27 '10 at 16:03

take the processor id also, will be usefull if transfer vm to another host and spoof mac on second host
–
MohDNov 11 '14 at 21:06

Yes, after studying and googleing copy protection methods for a while now, I must accept the fact that it is impossible to make a perfect defense mechanism. My goal would be to make it hard enough for the ordinary user not to struggle with a workaround them selves. But I just thought that the Virtual PC method I was mentioning was a much too easy workaround.
–
HenrikJan 27 '10 at 14:03