views:

1288

answers:

7

I'm thinking about adding some kind of copy protection to one of my tools.

  • Do you have any experience with that?
  • Have you developed your own protection techniques or did you buy 3rd party software?
  • Do you think it is a viable method to increase sales? (In a private and/or corporate environment)
  • What do you do to prevent hassling your paying customers? In most cases it's the paying customers who suffer from a bad copy protection, and I don't want this to happen to my customers. (Even if that means accepting some freeloaders)

I'm especially interested in techniques which allow a trial or freeware version of your software for private use but limit the usefulness in a corporate environment.


Related Question: How do you protect your software from illegal distribution
Related Question: Protect .NET code from reverse engineering.
Related Question: Prevent the circumvention of copy protection.

+31  A: 

Whatever technique you use, your software will be copied. The actual aim of copy protection is to prevent honest customers from being tempted to be unfair.

The minimum copy protection technique is enough. The maximum is not worth the time spent.

Moreover, I've heard that some developers provide user support to any user who asks, customer or not. The idea is that happy users may become faithful customers.

mouviciel
+3  A: 

For some products we (have to) use hardware dongles. Although they give a prety good copy protection, they are a real hassle for our customers.

All other software is protected by a software key. And yes you can copy those. But we have very good experience that customers don't do that. Without a key a program works normal, only you can't calculate the model and some print functions are disabled.

Gamecat
Should note, even with hardware dongles you only get *pretty good* protection, a knowledge attacker will still possible to bypass these without too much effort. I've done it in less than a couple hours work...
AviD
-1 for giving plane wrong information. Keep up buying even more hardware dongles :) Have you thought about using more than one dongle for one copy of your product? :) How about 7? :)
Piotr Dobrogost
+5  A: 

On desktop apps I've been using a Clarion Template (3rdParty, http://www.capesoft.com/accessories/secwinsp.htm).

With web apps, pretty much just been using the simple fact that the User has to log in, and tracking the activity. If they have an account, it means they've paid.

Desktop is a lot harder to track. As has been said, very easy to crack. Very much a case of:

Make it annoying for the Hackers, but as unobtrusive as possible for the Users

Stu Andrews
I agree. More specifically: Make it annoying, not difficult, to the hacker. Hackers thrive on challenges...
Treb
Yup, definitely true :)
Stu Andrews
@Stu "Make it annoying for the Hackers, but as unobtrusive as possible for the Users" hmm. In David Frenkel's answer to http://stackoverflow.com/questions/203229 one can read this "The people you are trying to prevent from hacking/stealing will inevitably be much more technically sophisticated than a large portion of your market."
Piotr Dobrogost
+4  A: 

"The hardware is the dongle"

That was what we always said at my old job, and to some extent, it's also true at my present one. Basically, we sold physical hardware to run our software, which we gave away for free. This probably isn't feasible for all businesses, but it's a nice feeling to know you don't have to worry about piracy, because people are invested in the hardware, not the software.

Nik Reiman
+3  A: 

As mouviciel mentioned, nothing is perfect. Aim to gently encourage users who might buy your product to buy it, and forget about the people who never will.

Some general tips:

  1. Don't bother implementing your own protection, unless you have experience doing so. This is an area where paying someone who's specialty is providing some type of licensing/protection is probably worthwhile (just keep in mind it won't be perfect).
  2. Choose a license key system that is difficult to keygen. Again, picking a pre-built licensing system will likely suffice. Creating your own from scratch will likely not.
  3. Take the time to properly integrate whatever licensing system you choose. If you just "protect/wrap" your executable(s), the protection will quickly be removed. Most licensing/protection products offer easy integration tools/macros that make automated cracking much more difficult.

For corporate software, the best thing you can do is make it easy for administrators to ensure they are within the license boundaries (# of instances/installs, etc.). Provide a central place for them to verify this, and gently remind them if they go slightly over, before you take any more drastic actions. In a large network environment, software licensing can get very complex for the IT dept. Make their job easier and they'll thank you.

breakingobstacles
+1  A: 

Good software doesn't need a protection. Your software will ever be copied, no mather what protection you choose.

So the best way to avoid illegal copies would be to make your software user-friendly, so that your customers are happy and satisfied with your product.

flash
this adds nothing that mouvicel didn't already say, but it's still a fair point
annakata
Or, go the other direction - only good software will be copied, so make your software the most horrid, gawdawful program to ever disgrace the face of computers, and maybe noone will WANT to copy it... :-)
AviD
+3  A: 

"The technical support is the dongle"

This doesn't apply to all applications, but for complex applications with higher price and lower sell volume, providing excellent support to your customers is the best way to be sure all your users are paying.

Carlos Gutiérrez