What copy protection technique do you use? [closed]
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.
Solution 1:
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.
Solution 2:
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
Solution 3:
"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.
Solution 4:
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:
- 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).
- 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.
- 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.