views:

158

answers:

3

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  A: 

You should look at something like iLok, a hardware USB key for software licensing and protection.

Viktor Jevdokimov
That sounds like a solution, but I would like to prevent the use of additional hardware for my software.
Henrik
Software protection is always a compromise. Maybe your app require complex protection, maybe not, depends why do you want to protect it. But you know, that there's no perfect protection at all.
Viktor Jevdokimov
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.
Henrik
+3  A: 

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.

pulegium
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.
Henrik
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
pulegium
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.
Henrik
A: 

I prefer using a Sentinel USB Dongle for software licences. The only problem I've seen with them is sometimes an idiot steals one because they look like thumb drives.

Kevin