CF2 TechNotes Blog

How Not to Protect Your Code

March 30, 2007 11:03 pm

I’ve written about copy-protected software before. In general, I think it’s a bad idea. I’ve yet to meet a scheme that can’t be defeated (albeit some require a bit of knowledge and some uncommon tools), and virtually all impose at least some burden on legitimate customers. Recently, my dear wife had a run-in with software protections that had to be the most intrusive, “you paid us and we still don’t care about you” copy protection I’ve seen this side of Sony.

Now, before I get too far into this, let me say that the system she ran into is several years old: it’s entirely possible that the company has come to its senses in subsequent releases. If so, and if the company contacts me to tell me about it, I’ll post information here. Until then, on with a cautionary tale…

You need to know that Carol is superb with all things having to do with fiber, fabric, and sewing. A friend purchased a sewing machine with embroidry attachments many years ago, but had never really used the attachments. She asked Carol to see if it could be figured out and put to use. The sewing machine and attachments were made by Husqvarna — a top brand. When Carol began installing the software, she found that it required a printer-port dongle as part of its copy-protection scheme. Fortunately, her laptop has a printer port, so she installed the dongle and proceeded with the install. She next found that the application she was installing (one of three separate applications required in order to do the sort of embroidery she wanted to try) also required a special key for the dongle–a key shaped roughly like a large watch battery. She installed the key and moved on. Each of the applications, in turn, required its own key to be placed in the dongle during the software installation process. Now, things get really fun.

Once the programs are installed, they each must be used if you want to make custom designs. Each time a program is invoked, its key must be inserted into the dongle. Since creating and saving a custom design isn’t a straight-through-the-applications sequence, there are more than three key changes required for the creation of each design. Get this image in your head: The process of creating an embroidered design isn’t just an excercise in graphical design–it’s now part of your aerobic excercise program as you get up and down, twist around to the back of the computer, stretch your arms to the dongle, reverse and repeat.

I don’t know whether the Husqvarna folks had “irritate the living daylights out of legitimate users” as an item on their design criteria list, but they nailed this feature. It’s hard to imagine a more annoying system that doesn’t involve physical mutilation.

Now, as I said at the top, it’s possible I’m ranting about a system that’s no longer sold. Lordy, I hope so. Whether it’s been relegated to the waste-bin of history or not, this is a product of the thinking that’s typical of copy-protection schemes. The thinking? Our customers don’t matter at all. The appropriate response? A decision to buy someone else’s product. I absolutely believe that developers (and all those who work in creative endeavours) should be compensated for their work. I’m not advocating intellectual property theft or a system in which no one is allowed to profit from their work. I am saying that these creative folks should respect their customers enough to figure out how to profit by making their legitimate products desirable–not by abusing the people who keep them in business by actually buying their wares.

OK, the lecture is over, and a tough week is done. More regular posting next week and news from a regional SPJ conference over the weekend…

No Responses to “How Not to Protect Your Code”

Care to comment?