It's a pretty hairy subject and one that will bring developers to the point of flames time and time again (not to mention the "software wants to be free" pundits). What can we do to enforce our license schemes?
This becomes more complex when one releases software for download on the web. Everybody, pretty much, knows what "shareware" or "trialware" are. Yet only a small percentage understand it is not "free" software. A plethora of schemes have been developed to assist in getting the customer (otherwise known as the "user") to buy. But by and large it is an uphill battle. I'm going to talk about some of these issues in this brief article. Things like license codes, encryption, crack sites, torrent sites etc. It aint pretty – but it's essential knowledge to those of us trying to earn an honest dollar on our hard won, blood sweat and tears caked applications.
In the beginning there was "shareware". First coined, legend has it, by Jim Button (AKA Jim Knopf). Basically you tried the program, liked it and sent a payment. Worked beautifully for years. However, times changed and a new breed of people entered the software industry buying market. They didn't care about how hard coders worked to finish a good application – they just wanted it. A new scheme clearly needed to be invented. Enter thirty day trials and function crippling. This worked until some lively individuals started passing around unlock codes.
Enter the Warez site (shorthand for Ware's Site – or Software's Site). Now you could surf over the a Warez site and download your serial – instant free program. I'm delighted to report that Warez sites have shot themselves in the foot as majority are run by script kiddies who attempt to infect your computer while browsing and downloading your ill-gotten serial numbers making them so dangerous only the ignorant or completely stupid would use them. The Peer 2 Peer clients emerged filled with lovely Trojan's and viruses ready to infect those dumb enough to pirate using those tools.
Now we have the Torrents. The Torrents are a different kettle of fish. Most of the software (and just about everything else you can get on them) is clean and virus/Trojan free. Indeed they have special forums warning you if a torrent is infected. They are hosted in countries that are not signatories to the Berne Copyright Convention and so there is little law enforcement can do against them – except punish locals who use them (see that in a law suit coming in your neighborhood soon). The *only* option available to software developers is to try and keep the honest users honest.
You can't beat the pirates.
Tools such as ASProtect, Armadillo and even ExeCryptor are stripped, disabled and otherwise flaunted on a weekly if not daily basis. They are great tools from very intelligent people – but they are not infallible. If it can be written it can be cracked. A word to Revolution users. Most of these tools encrypt and compress the PE header of the executable file making it impossible for (what I assume is) the Revolution embedded engine to be accessed, making them pretty much useless on app's written in Revolution (I'm also talking Windows users/developers here).
So – what do we do about this?
There are things you can do to make a hackers life (don't you hate the fact the media is calling these people "hackers" – that used to be a term for programmers :( ) miserable.
Here's a suggestion that works wonders. Only validate the first part of your registration code when the code is typed in. Let the program run its merry way and make the pirates ego soar (and the user using the stolen or cracked code's head sing) as they get full access to your program. Then – here's the mean part. 30 days later validate the second part of the code. If it validates let the program go its way. If it does not validate – make a note of it somewhere – and let the user continue. We're "hooking" the user into our program. They want it, they need it and now they are committed to it. Now at 90 days check the remainder of the string. If it does not validate check parts one and two. You have a fake code. Rather than just kill the program with no explanation (causing the user to blame you, the programmer, for a "buggy program") launch their internet browser so that it goes to your "Naughty Pirate Page". Now there is a .001% chance your code goofed and you sprung a legit user – so don't start insulting them. Inform them that the code they are using has expired and that they need to obtain a new one. Ask them to contact you and ask for a new key (serial number). When they do, get their full details and look them up in your database (you have a database of customers with keys – right? :) ). 99.9% of the time they won't be there. You may find the code is one you invalidated because it was being handed around. If the user doesn't match the code – valid or not – you are well within your rights to ask them to purchase a code unless they can provide proof of purchase (most software registration services will do this for them if they are legitimate). Otherwise it's tough bananas and you've caught a pirate. Now – here's the cool bit. Be nice to them. Ask them how they like your program. Ask them if they've recommended it to friends, ask them if they know of a better program. Get their responses (if they respond, most pirates run like heck). Collate the responses and now try to turn this wayward individual into a paying customers by telling them you have a sale this month and you'd love to offer them $xx.xx for this program they just have to have!
Remember – you can't beat a pirate. A pirate will steal either your program or someone else's – whichever is easier. But – most users of cracks and serials don't even understand – fully – that it is theft. They think software companies are mega corporations like Microsoft and that even if it is stealing there is no real victim. Don't be afraid to let them know you are a one or two man/woman band. Win over these ignorant souls. It's easy to see them as evil – but a smart business person is much better than to allow appearances cloud their judgment.
Scott is Moderator of comp.software.shareware.* newsgroups.
Scott offers voice over facilities to software authors for their online videos and tutorials. Contact email@example.com for a free, no obligation quote and access to his portfolio.