How to Protect Your Software from Piracy
How can you protect your software from piracy? There is nothing you can do to your software to guarantee that no one will be able to make pirated copies of your software, or use your software without your authorization. But there are a few things you can do to make your programs more difficult to copy and to make it illegal for others to make unauthorized copies of your software. First, make known your wishes about what others are allowed to do. Then make it difficult for others to circumvent your wishes. How do you do this? All four steps of protecting software from piracy defined below are explained in further detail and demonstrated in step-by-step tutorials in the book, This Little Program Went to Market: Create, Deploy, Distribute, Sell, and Market Software and More on the Internet at Little or No Cost to You.
Step 1: Copyright your program code.
Copyrighting is simply making a statement that only the copyright owner is authorized to make copies of the code; and those who wish to legally make copies of the code must first obtain permission from the copyright owner. So your first and most important step is to claim copyright ownership of your code. Claiming copyright ownership is done by simply putting a copyright statement in each major portion of the program code. For example, in a Java program, you should put a copyright statement in the definition of each Java class.
Though the copyright symbol, ©, is not a required part of a copyright statement, it is often included. You can type the copyright symbol by holding down the Alt key while typing its ASCII code, 0169, on the numeric keypad. It doesn't matter if Num Lock is on or off, but just that the code number is typed using the numeric keypad.
Claiming copyright ownership in a program is demonstrated in the book, This Little Program Went to Market.
Step 2: Create a license agreement.
You may write your own license agreement, including in it whatever you feel is important. I suggest you read through the license agreements of other software you've purchased, especially those that might be similar to your software, and choose the topics and thoroughness that you liked most. Also be aware of things that you didn't like about others' license agreements. For example, blocks of text in all capital letters are difficult to read. You're free to choose the style of your license agreement, whether it be legalistic, silly, or even romantic. Just make sure your agreement clearly states what you do and don't want others to do with your code.
You should then make installation of your program contingent on the user's acceptance of your license agreement. You can do this by creating an install wizard for your program . This Little Program Went to Market demonstrates, step-by-step, how to use a freeware program to make user acceptance of your license agreement part of the installation of your program.
Step 3: Obfuscate your code
The next step is to make it difficult for your program to be decompiled, or at least to make the decompiled code difficult to understand. This process is called code obfuscation. Obfuscating your code often involves renaming objects, variables, and method names to meaningless symbols; and rearranging and changing code in such a way that it will still run the same way but is harder to understand.
What's the easiest way to systematically rename identifiers, move code around, and make it difficult to read? Let a program do it. This Little Program Went to Market demonstrates step-by-step how to obfuscate Java code using a free open source program as an automatic part of the program's build process.
Step 4: Provide a trial version of your program.
One more way to protect against piracy is to restrict program functionality as only a trial version until the customer registers the program. After you are paid, the program can be made fully functional. The next article discusses how to Create a Trial Version of Your Program.
More than 25 open source and freeware programs are used in the book This Little Program Went to Market to demonstrate how to create a Web site, put an Internet sales and marketing process in place, and make your own programs "market ready". The book gives step-by-step instructions for all the steps and tools required to Create, Deploy, Distribute, Sell, and Market Software and More on the Internet at Little or No Cost to You. All the tools demonstrated in the book are available for free!