![]() 3D 3D Photo Gallery (Part 1) 3D Photo Gallery (Part 2) Audio Poor Man's MIDI Make A Metronome iPod Tricks (Part 1) iPod Tricks (Part 2) iPod Tricks (Part 3) Laugh Track Machine Audio Player with Reverb Shepard Melody RB Phone Home Build a Drum Machine Custom Controls and Windows Double Click Listbox Draggable Metal Window Double Click Canvas Custom Buttons Custom Buttons Part II iTunes-style Listboxes Custom Controls General RB Scrolling Windows Using Mesage Dialogs Case-Sensitive Word Finder Introduction to Stacks Wiggle Window JPEG in PDF Listbox Checkboxes Background Applications Listbox Auto-Find Virtual Volumes Time Tracker Software Distribution (Part 1) Software Distribution (Part 2) Software Distribution (Part 3) Software Distribution (Part 4) Exceptions Tips and Tricks Text Clippings Made Easy Graphics Drawing a Simple Gradient The SpriteSurface: Space Game Image Spinner Cropping Graphics (Part 1) Cropping Graphics (Part 2) Cropping Graphics (Part 3) Cropping Graphics (Part 4) Shimmer Graphics Lissajous Figures Simple Screen Capture Vector Graphics Kaleidoscope Images Stegonography Spirals! Image Table RB Magnifying Lens Screen Capture Color Picker Tutorial Hacks Ghost Grab Speedy Mouse Extension iTunes Plugins iTunes Skinner Mac OS X Global Hot Key Event (Carbon Events) Login Welcomer (Carbon Events) Add/Remove Buttons Resizable Sheets Mac OS X Preferences Window Using Sheets in REALbasic Build a Bundle (Part 1) Build a Bundle (Part 2) Dock Your Passwords Mac OS X Debugging REALbasic Mac OS X Icon Tutorial Animate Your Dock RB and the Command Line Menus Window Menu Templates Menu Listbox Menu Novelty Guessing Game Calendar Trivia Tile Mixer Zip Code Finder Happy Valentine's Day Merlin Simulator (Part 1) Merlin Simulator (Part 2) Merlin Simulator (Part 3) Buzzword Machine AppleSoft BASIC Printing Print to PDF Registration Registration Code Validation Network Registration Codes Resources Picture Extractor (Part 1) Picture Extractor (Part 2) Serial Caller ID (Part 1) Caller ID (Part 2) Caller ID (Part 3) Speech Speech Recognition Socket Communication Easy Peer-to-Peer File Sharing MacPAD Version Checking Display Web Image In Canvas HTML IMG Tags Version Tracking Even Smarter Instant Messaging Web Tiler JavaScript and REALbasic Stock Ticker (Part I) Stock Ticker (Part 2) AIM Mate XML Manipulation Simple XML Introduction Video Big Brother Video Capture Note: All articles without a byline were written by Erick Tejkowski. When cleaning the site I removed them because the code differed from page to page, and I have yet to put them back in.
Tell us about a bad link. |
So you've built the perfect utility, game, or widget using REALbasic and you want to unleash it on some victims. What do you do next? Today we continue our series about the process of releasing software. This time we will discuss some of the various ways you can protect your software, should you choose to sell it. Introduction Today's topic is software protection. If you decide that your application is good enough that other folks might actually want to use it, perhaps they'll even be willing to send you money to do so. Welcome to the wild and woolly world of shareware and commercial software! To get those customers to send you money, though, you can't just stick your creation out in the cold, cruel world. As you probably already know, companies use a variety of methods for preventing unauthorized users from using their software product. The common school of thought here is "Why would someone pay for a product that they can use for free?" We will look at some of the software protection methods in use today. We will also briefly discuss some steps you can take to make your software "safer" from cracks and hacks, which should result in more income for you. Easy Things You Can Do Before we get into the discussion adding protection to your code, you should know that there are some very useful tips you should follow when releasing software to the public (usually the web, but also on CD-ROM). These steps don't require any special effort from the programmer. Rather, they are some common sense ideas that you can easily implement on your own. Think of this as the "social engineering" part of the tutorial.
Watch out for pirates... If you've ever visited a Hotline server or stopped by an ftp site in Russia, you are probably familiar with the underground of software piracy on the Macintosh. These servers typically provide users access to a catalog of pirated software and serial numbers. To help protect your software, it's not a bad idea to occasionally venture into this netherworld in search of hacks or cracks for your application. If you find one, change your software immediately to reduce the number of users that can take advantage of the hack. Which leads us to our next topic... Release often! Perhaps one of the best tools to protect your software from piracy is time. By releasing updates to your software regularly, you can help yourself in several ways. First, you can take measures to quickly thwart publicly available hacks and cracks for your software. Secondly, new features bring in new customers... including those who might have already pirated your software. New features will make their older pirated versions look tame in comparison. Thirdly, frequent updates to your software increases the amount of publicity your software receives. And, finally, by releasing regularly, you can thwart hacker's attempts in the first place. It usually takes some time for pirates to "crack" your software. If a new version is out before they've had the chance to break the previous version, you win! Keep good records. As you sell your software, keep detailed records of the serial numbers you are giving out and who registered the software. This will help you track down any "leaks" (i.e. users who have given out there serial number to a public list) you have. It's up to you how you want to handle unscrupulous users of your software, but only good record keeping can help you catch them. Test, test, test... If you are worried about the security of your application, test it thoroughly. What might seem like the best protection scheme might have fatal flaws that cause it to be easily bypassed. The only way to catch these is to test, so do it a lot and do it often. Software is often complex with many twists and turns. Testing is your best defense for avoiding dumb mistakes. Dumb mistakes can give crackers easy access to your software, much like leaving the keys in your car door. Be creative! Although good programming skills are helpful when creating "protected" software, often creativity will take you further. By using your creativity to protect your software, you decrease the chances that someone will be able to crack it. Pirates are no different than programmers... they're lazy. If they have to try too hard, they will often go elsewhere in search of easier victims. Creativity gives you the ability to throw in some twists that help thwart pirates. They are going to attempt to break into your software with a grab bag of standard trickery. If you do something that's not "standard", you just might trick the pirate. Protection Schemes As I've already mentioned, commercial and shareware products are protected with a myriad of schemes. Some of these include:
How you want to protect your software requires some thought. How much does the software cost? If it's inexpensive, perhaps a sophisticated protection scheme is a waste of time. What protection scheme yields the greatest number of purchases? Some people swear by so-called "nagware", whereby the user is "nagged" into buying the software, usually through a variety of friendly "reminders" (in the form of popup windows). Others find nagware offensive and prefer releasing software that has only a fraction of the features available in the full registered version. Often this is in the form of "save-disabled" applications, but other means are used. Yet others think that most customers want to try out all features of an application and thus offer time-limited demos. The application works as if it is registered, but after you've got the user "hooked", it shuts down and won't continue to work unless it is registered. If you are releasing software on CD-ROM, there are other tricks you can use. For example, you might require an authorized CD to be in the machine before your application will work. Given that most users who visit ResExcellence will distribute via the web, this is the least likely scenario you will encounter. Conclusion That's it for this week. As you can see, protecting software is no easy task. There are many options from which to choose, but only you can decide which is right for you. Next time we'll finally look at some source code examples that you can use to "protect" your software. I promised code this week, but plans for this tutorial changed slightly. Next week, we will look at some code. See you then! |
|||||
|
Please support ResExcellence by Visiting our Sponsors. One click makes a difference. |
||||||
|
|