Sign in to follow this  
mmakrzem

[C++] How2 Implement software registration?

Recommended Posts

Does anyone have experience with implementing software registration to commercial software? I'm thinking of releasing some of my software as "demo versions" for people to try before they buy. The demo version would have some missing functionality, ie you can load but you couldn't save or something like that. Once a user decided to buy the software then they would get a serial number or an activation code via email from me and the program would then unlock itself to become the "full version". Does anyone know how this is typically done in software? Once a user registers the software, where is the registry information stored to let the program know it should be unlocked and act like the full version? I realize there isn't a 100% hack proof solution to this, but are there any tips or tricks I should know about when implementing the lock/unlock mechanism to minimize the possibility that a hacker can activate the software them selves. thanks,

Share this post


Link to post
Share on other sites
Store the non-demo content encrypted. Write an app that decrypts it. It is pretty safe until it is decrypted. The decryption app is attackable.

Second idea is don't give them the whole thing cut chunks out of it so that the data is corrupted, on purchase download the missing bits.

Share this post


Link to post
Share on other sites
There isn't much you can do to prevent dedicated hackers from accessing bits of your software. Generally I'd say avoid giving out the full product as a demo, especially with futile license checks on features that can be overcome as easily as changing a je to a jmp in the assembly code. As stonemetal said, encrypting data could work, but then that just moves the vulnerability to a different part of the system. Perhaps you can have some sort of internet based validation, but then we are back to the hacker simply finding the point where the key is compared to what the application is expecting, and forcing that to always return true. You could use some sort of 3rd party packing software (Themida comes to mind), but that comes with its own problems (AV software doesn't always like it) as well as being possible to crack also.

Also consider that it only takes one person to obtain a license and distribute it to make the entire security exercise pointless, since people would then be using an apparenly legitimate way of accessing the software.

Finally think about whether it's worth the effort to do all this - since you can't make anything 100% secure these days, I'd say just do what you can and see how it goes. There is no magic cure for security problems :p

Share this post


Link to post
Share on other sites
I was thinking of doing something like cutting out code and after purchase is made, let them download the missing part.

The part that I'm not sure about is how can I then make it so that the downloaded part after purchase will only work for the user that purchased the software.

Hmmm, going to have to give this some more thought.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this