Google
www ResExcellence

Application Makeovers
Desktop Snapshots
iTunes Skins
Mighty Mouse Cursors
Uploads
Boot Images
Dock Poofs
Links List
Photoshop Goodies
Users Forum
Boot Panels
Download Stats
Log-In Panels
REALbasic
Clocks
GUI Software
Mac OS X Mods
Safari Stuff
Desktop Pictures
Icons
Mac OS X Themes
Splash Screens
Homepage
Download a free demo of REALbasic!
Download a free demo of REALbasic!
Recent Articles...
3D
3D Photo Gallery (Part 2)
3D Photo Gallery (Part 1)

Audio
iPod Tricks (Part 3)
iPod Tricks (Part 2)
iPod Tricks (Part 1)
Laugh Track Machine
Audio Player with Reverb
Shepard Melody
RB Phone Home
Build a Drum Machine

Custom Controls
Custom Buttons
Custom Buttons Part II
iTunes-style Listboxes
Custom Controls

General RB
Wiggle Window
JPEG in PDF
Hey! You got your Checkbox in my Listbox!
Background Applications
Listbox Auto-Find
Virtual Volumes
Time Tracker
Software Distribution (Part 4)
Software Distribution (Part 3)
Software Distribution (Part 2)
Software Distribution (Part 1)
Exceptions
Living on the Edge
Tips and Tricks
Review of REALbasic 3.0
Text Clippings Made Easy

Graphics
Image Spinner
Cropping Graphics (Part 4)
Cropping Graphics (Part 3)
Cropping Graphics (Part 2)
Cropping Graphics (Part 1)
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

Internet
Display Web Image In Canvas
HTML IMG Tags
Version Tracking
Even Smarter Instant Messaging
Web Tiler
JavaScript and REALbasic
Stock Ticker (Part 2)
Stock Ticker (Part I)
AIM Mate

Mac OS X
Using Sheets in REALbasic
Build a Bundle (Part 2)
Build a Bundle (Part 1)
Dock Your Passwords
Mac OS X Debugging
REALbasic Mac OS X Icon Tutorial
Animate Your Dock
RB and the Command Line

Novelty
Guessing Game
Calendar Trivia
Tile Mixer
Zip Code Finder
Happy Valentine's Day
Merlin Simulator (Part 3)
Merlin Simulator (Part 2)
Merlin Simulator (Part 1)
Buzzword Machine
AppleSoft BASIC

Printing
Print to PDF

Registration
Registration Code Validation

Resources
Picture Extractor (Part 2)
Picture Extractor (Part 1)

Serial
Caller ID (Part 3)
Caller ID (Part 2)
Caller ID (Part 1)

Speech
Speech Recognition

Video
Big Brother Video Capture

Newest Dev Tools!

Book Alert !
REALbasic for Dummies
by Erick Tejkowski
$19.99 @ Amazon

Made with REALbasic!

Problems?
Downloads are in StuffIt 5 format (free download).
Tell me about a bad link (Thanks!).
Submission Policy

4-11-02

Software Distribution Part 2 by Erick Tejkowsi

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...
  • Release often!
  • Keep good records.
  • Be vigilant!
  • Test, test, test...
  • Be creative!

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:

  • Serial code registration
  • Nagware
  • Partial features
  • Time-limited demo
  • CD-ROM required

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!


4-09-02

REALbasic News by Erick Tejkowsi

High Precision Bob Delaney has posted his freeware Precision Plugin. This plugin allows you to do mathematical operations in REALbasic with extremely large numbers (we're talking hundreds to thousands of digits here). Check it out!

RB-NUG FAQ The REALbasic community is active one and nowhere is this more evident than in the RB-NUG email lists. If you use REALbasic, be sure not to miss the lists. You can ask your REALbasic questions there and experts from around the world will answer. Then, go visit the RB-NUG FAQ to learn the answers to many common questions posed on the list.

Commodore 64 Lives On Download this fun little plugin (Classic Mac only) to play your old Commodore 64 "SID" sound files from within your REALbasic projects.

Sheets...Wee! Seth Willits has put together a plugin that will implement sheets that drop below a OS X style toolbar. Download the FSTBSheetWee plugin here.

New Calendar Class Colourfull Creations has released Calendar Class for REALbasic Developers. Calendar Class is an easy to insert calendar for your projects. Simply drag the class into your next project to add a customizable calendar. Change font, button color, background color and more for a customized look for every project.


Application Makeovers
Desktop Snapshots
iTunes Skins
Mighty Mouse Cursors
Uploads
Boot Images
Dock Poofs
Links List
Photoshop Goodies
Users Forum
Boot Panels
Download Stats
Log-In Panels
REALbasic
Clocks
GUI Software
Mac OS X Mods
Safari Stuff
Desktop Pictures
Icons
Mac OS X Themes
Splash Screens
Homepage

Maintained by the Staff of ResExcellence. This entire site ©1997-2003 ResExcellence
Privacy Statement? Sure we gotta Privacy Statement.

[an error occurred while processing this directive]on the ResEx LinuxPPC Server