Piracy protection

I’m developing an app for some clients. Part of the agreement is that they can only use it on one specific computer. Any suggestions of how I can ensure this? My first thought is to hard-core into the app the serial number of the computer that it’s supposed to run on and checking on stattup. Just wondering if there is a better solution?
Thanks in advance

There is a world behind this but in my experience no protection will give you and absolute guarantee, if your software is valuable it will be cracked, and any do-it-yourself solution will be a piece of cake for an experienced attacker.

If the numbers are small you could think about an hardware dongle, I ended using the ones from Dinkey but you may prefer something else. They also add the benefit of an added encryption of your app and some magic that make it very hard (if possible) to modify it and/or extract information with a debugger.

So if the software is something tailored to your user and you only want them to use it on one single PC (and you are confident the won’t hire a cracker to overcome this) a simple solution like the one you proposed may be enough, in all other cases I would go with some more or less ready made solution.


A fairly simple approach is you have a file like license.txt.

The license.txt has a hash ( you can make hashes with ofxPoco ) which is made up of the serial number of the machine which you might transform in some way before hashing it.

On startup if the license.txt is missing or the hashed serial number of the machine doesn’t match the contents of the txt file you exit the app - maybe with a system alert dialog letting them know to contact you for a valid license file.

Its definitely not hack proof - but should work well enough for your needs.