Software Copy Protection


By Bruce Johnson
29 June 2001


horizontal rule

"How can I prevent someone from copying my software?" This is the lament of almost all commercial software developers. You've poured your heart and soul into a product, and now you want to make sure that those dang users out there get squeezed for every cent that's due to you.

Well, if you ignore the rest of the article then remember this. You can't. If your software is any good, then it will be pirated. By someone, somewhere, somehow. It might be a company doing a BOIE (Buy once, install everywhere.) Or it might be people running the program at home. Or it might be blatant copying. Get over it!

Actually even asking the question is a sign that you're buying in to a number of development myths.
  1. If you build it they will come. If ever there was an untrue slogan, this is it. It might have worked for baseball players, but for software you can forget it. The development path is littered with superior products that were upstaged by technically inferior fare. I'll spare you the complete list. If you can't think of any, start with beta/vhs and move forward... In the modern era the theory is that if you put it on your website, your market will find you. Nonsense.

Result of understanding myth number 1 – The biggest challenge you have is not writing the software. The biggest challenge is Selling the software.

  1. The Developer did All The Work. You did didn't you. You thought up the program, stayed up late working on it, lost sleep over it. Let's be honest you did it all right? Wrong! Because creating the program is not the main challenge. The day the program is complete, how much loot have you made? None. All you now have is a product. But the product is worth nothing unless you Sell it.
Result of understanding myth2 –Owning the program is valueless. All the work the developer did is not enough if it ends there. More work is required.
  1. Sales, Distribution and Marketing should cost nothing. This is a result of believing in myth number 2. The value is not in the program itself. And the value is not in the salesman. But the programmer needs the salesman to see the program, and the salesman needs the programmer to write programs. It's a symbiotic relationship. 50/50. Not 90/10. Remember if the salesman can make a living selling just your program, then with a 50/50 split you're doing fine. If he can't make a living selling just your program, then he will by necessity have to do other things as well. Which means less time on your program. Which presumably means fewer sales.

Result of understanding myth 3 – either devote your afternoons to selling activities, or link up with other people or companies who can sell for you. Be prepared to pay good commissions for good results.

So why do these myths mean that your original question is flawed. Because fundamentally the goal of writing the software in the first place was so that it could be copied. In fact the primary goal is that you get paid! The right question is;

"How can I get Users of my software to pay for it?"

Once you understand this, then the copying issue becomes less important. Indeed if you can convince "pirate" users to pay, then the reverse is true. You want people to copy your software.

Consider: You can have either:

a) 100 pirate users, and 10 end up paying.

b) 5 legit users, and perfect copy protection.

c) 10 legit users and perfect copy protection.

d) 100 pirate users, where none end up paying.

Which one would you pick? Most developers would go for c). But I'd go for a). From a money point of view a) and c) pay the same. But a) offers the chance of additional revenue. Plus there are 90 unpaid sales staff working for me.

I'll assume for the moment that you don't have a zillion dollar budget for up-front marketing. What then is the best way to reach new customers? Well nothing works quite as well as a satisfied existing customer. (And nothing does as much harm as an unsatisfied customer.) It's worth remembering that even a pirate user can also be a satisfied user. And even if he Never pays, he might recommend it to someone who does.

Don't get me wrong. I'm not suggesting you encourage pirating. What I'm suggesting though is that if you accept that pirating will happen, then spend less time fighting it, and more time converting pirate users to legit users. How can you do that?

The strategy you adopt will depend to some extent on the nature, and price, of the software involved. If you have a $50 000 package then chances are no amount of subtlety will result in a sale. For software this expensive, frankly you should use a dongle. Ok, they're ugly. Users hate them. Programmers hate them. But for 50K not much else is going to work.

At the other end of the scale, the biggest problem with a $10 product is convincing the person to get up out their chair and write the check. (Allowing payment via the internet is a good solution here – no walking required!)

I'm going to assume your software is somewhere between the 2 extremes. Probably in the sub $1000 range. Here are some ideas.

Branding
Probably the most effective, and it works on any system with reports that go to other people. Simply put the name of the registered user on all reports. It's hard to issue an invoice to a customer where the "company" name is incorrect. But don't just limit it to reports. Use the name blatantly on the wallpaper for the main screen.

Expiry Dates
You can either do this overtly or covertly. It's pretty hard for the pirate user to do anything but pay when the program shuts down 2 weeks before the financial year end... Of course many programs ship with very clear "30 day trial" periods and so on. The idea here is that on the day the program shuts down, the user must be convinced that this is the best solution for him and worth paying money for.

Simultaneous Network usage
Instead of restricting the number of copies that can be installed at a company, rather restrict the number of copies that can be running at any one time. This encourages other people to try the software out. Sooner or later the company is returning to get more licenses.

Record limiting
If you have a dongle, then consider limiting the number of records that the software will support without the dongle. This still allows the software to be copied. Again it can be done covertly. Get the user hooked, then pull in the line.

Ancillary Services
Updates and Support are two that spring to mind, but be creative. Add long term value to the client. If you have a tip-of-the-week newsletter (advertised on your website) then you can identify potential pirate users that sign up for the newsletter.

Internet Integration
The internet is more than the web. And tools for using the internet directly from your program are widely available, and easy to use. Again be creative. If your program is in contact with you, then identifying pirate users is easier. Be careful though. Making covert connections can be detected by fire-walls, and won't make your legit customers very happy.

Binding Software to Hardware
I have to say, I'm not a fan of this approach. For the most part it's not very reliable, and can cause the program to fail on legitimate machines. Typically it binds the software to a hardware related number, like the Hard Driver serial number. But this guarantees the software will fail if the customer does a hardware upgrade. If you plan on 1000 sales, that's 3 failures every day of the year. Every year. (Assuming an average upgrade of once every year.) If you plan on 10 000 sales, then it gets a bit impractical.

Whatever method, or combination of methods you choose, remember that the existing legitimate customers are important. If the system interferes with them then it's not a good system. And of course you must be able to re-activate systems that have shutdown by entering a code. This code should be available via phone, fax, email or whatever. And under no circumstances is it a good idea to delete data when the program shuts down. (In some countries deleting the data may be illegal.)


horizontal rule

Disclaimer : This article is the opinion of the author, and is not necessarily the opinion of any other person or company.
Specifically it may not be the opinion of the owners, or host, of this site.

© 2012 CapeSoft Software