More specifically - allow to use the program without a license for X days and the cripple it in some annoying way until the installation is licensed. Activation should pass some machine details to the licensing server, which will then pass back them hashed and signed. The program should have the public part of the licensing key embedded, so on launch it would read the license, verify the sig and check that the license still matches the machine.
Also, for this to work well you will want to have some basic protection against reversing in place. It should not be possible to NOP the IF in the license check, replace the signing pub key or to side-load DLLs. This is a large subject of its own, but there are off-the-shelf solutions for this (called exe protectors)... though the con here is the perpetual hassle with false positive detection from anti-viruses and such.
PS.
I should add that "pay what you want" model doesn't work at all. It absolutely doesn't work for enterprise software and it doesn't even work with home users. It basically makes the software look not valued enough even by its own creator.
Ditto for the donation model unless the active audience size is in 100s of thousands. Donation model is not really a model to begin with, it lacks predictability.
Differntiating pricing tiers just by the user type - personal/home vs. business/commercial - works very poorly as well. People cheat. The only thing that really works as a price differentiator are the features. Pay more - get more. Also, charging for Windows Server installs 10x the normal price is a perfectly acceptable practice that works well.
If you have any questions - ask, I'd be happy to answer what I can.
No comments yet.