views:

125

answers:

4

I am going to be developing a desktop application in C++ that I'd like to protect by requiring a license file.

My initial idea was to have 2 executables. One would the actual program that I ran some sort of symmetric encryption on and the second executable would decrypt and run the program using a license file on the user's computer. However, this is easy to defeat by simply dumping the memory.

Are there any other solutions out there (doesn't have to be free) to manage licenses? I have seen FlexNet and other things like that in mainstream programs, but wasn't sure how difficult/expensive these were to include in my own programs.

+6  A: 

I wouldn't stress about making bullet-proof licensing. A dedicated user/hacker will be able to circumvent most anti-piracy techniques you use.

I like to add just enough licensing to make the end user realize they are breaking the rules aka keep honest people honest. The user that goes far enough to dump memory is not concerned about whether they are breaking the rules.

I don't have a specific C++ package I recommend, but I do like FlexNet (formerly FlexLM) for it's support of floating licenses.

Alex B
+1  A: 

You could consider our license manager solutions at Agilis Software. We protect C++ applications on a range of platforms, and support such models as node-locking, product activation, floating licensing, hosted or redistributed license servers, trial licensing, subscription licensing, feature-based licensing and more.

Dominic
Please do not post ads
0A0D
Eh, its a valid answer, and he's not hiding the fact that he's spamming.
Will
+1  A: 

btw, if you are considering writing your own licensing tool you might find this interesting: Issues to Consider before Building a License Manager".

Dominic
A: 

In reference to the article: "Issues to Consider Before Building Your Own Software License Manager", I've put together a summarizing list of things that are likely come up when choosing to build your own solution. You have to ask yourself if you'll be ready to take them on?

  1. Sacrifice core product development
  2. Implement features to satisfy new requirements as business needs change
  3. Address new security issues
  4. Employ more programmers for ongoing maintenance, support, and development
  5. Train other developers on the system
  6. Go over budget

Fortunately, there are 3rd party solutions like LM-X License Manager from X-Formation, where such and other problems are avoided.

Peter