License/Copy Protection Ideas

I have just coded my first 2 programs. One will be sold on a CD at stores. The other will be sold online.

What can I do to protect my software from being distributed illegally?

I know someone will buy the CD and give it to everyone they know. Also I know someone will buy the software online and put it on CD to distribute to friends. Is there some way to prevent this. Atleast a way that makes it harder for them, so the lazy/non-techie people won't.

A cd-key is one way but that is easily distributed with the media to others. I don't want something too complex because I don't want to support it incase it breaks.

Internet activation (like MS Windows) is an idea but I want it independant of the PC setup if possible. And if my website ever changes or is down that would upset people.

The best way I can imagine is the way halflife 2 was done. The program connects to a server with the serial number everytime it is launched for authentication. But that is way to evasive.

Can someone shed a little light on this? For either of the 2 scenarios.
BiSHGoDAsked:
Who is Participating?
 
mydasxConnect With a Mentor Commented:
past that, not much else you can do.  You can do things to prevent people from copying the disk w/ disk protection, but as seen on the web, that isnt exactly too difficult to get by either.  Calling home to verify the id evertime your auto update fires, is what Microsoft, Valve, Adobe, etc.  all do.

mydasx
0
 
mydasxCommented:
dont forget to obfusicate your code too, so that it is not readily reverse engineered.  If you are doing one key per installation, your latter idea will work fine and has been quite successful for valve.  i would suggest, that you disguise this "internet ready service" as an auto update application.  However, if i'm smart, and your updates dont mean too much to me, i could just use your application offline only, or hide my connection from it, and use the key i found on one of the many download sites your application is available on.  the answer to this question is not an easy one.
0
 
BiSHGoDAuthor Commented:
I know to obfusicate the code, that isn't really the issue.
Also I don't think this program will be widely spread enough to have it plastered all over websites, I don't think.

And I know that this is a hard problem. I've been reading a bunch of things on it. I do have an auto-update feature of the program. I can just build on that and have it verify on my website the first time it runs.

Any other ideas?
0
 
mydasxCommented:
have it verify everytime it runs.

mydasx
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.