Friday, July 11, 2008

Copy Protection

If I wasn't planning to copy protect my software, I'd have released my paid version by now.

At my old company, we used hardware locks, aka "dongles". I am planning to provide my software electronically, so I don't want to have to ship locks around. Especially since a good number of my clients will be overseas and shipping costs can really add up.

So I decided to go with a software solution. I chose Aladdin's HASP SRM solution. I had worked with their hardware locks before and trust the HASP technology. I also considered Crypkey and not a day goes by that I wonder if I wouldn't have been better off doing that. But I already invested in Aladdin, so I'm stuck with it for now. And based on past experience with copy protection, I suspect I'd just have different problems with Crypkey.

There are other solutions out there. A lot of high-end expensive solutions. But my products are going to start in the $200-300 range and I can't afford an expensive solution. Not to mention I have a limited start up budget. And I didn't want to go with the quick and dirty solution of just requiring a license key on installation because it is too easy for someone to share that around the office without some kind of an online verification system. Which seems to get back into the expensive solutions. Not to mention I don't have my own server.

So I went with Aladdin since I trust them and they are familiar. Or at least I thought they were. The SRM technology is a generation newer than what I worked with before. The API is different and the process for issuing licenses seems more confusing to me. So I'm procrastinating, looking at everything else I need to do besides getting the copy protection set up, even though that is the highest risk item.

Not only is it more confusing, but their documentation is in need of an overhaul. I'm a developer. I've worked with a lot of APIs and read a lot of API documentation. And Aladdin's leaves something to be desired. And suddenly, their technical support, which was great a few years ago, has been a big disappointment. A couple of times, when I've followed up on an issue, even though the same guy is replying, the response doesn't sound like he reviewed the original issue I'm following up on!

And don't get me started on their lack of support for 64-bit Windows Vista. The copy protection will work on 64-bit Vista machines, but don't try to develop on them.

My latest frustration is that the tool they provide to activate end-user licenses is so kludgy that I feel forced to use their separate activation API to write my own. But that API only comes with an unmanaged C++ sample. Which I couldn't even get to compile in VS 2005! (It was created in VS 2003 and the release notes says that they have tested the converted version in VS 2005 and VS 2008, but they couldn't bother to include those versions). Their main runtime library comes with samples in many languages, including C#, which is what I use, so why not the activation API?

I did find a .NET activation sample on their website, but when I asked their support team about it, they seemed clueless. I am now in the process of trying to incorporate an activation dialog into my product, borrowing from this seemingly unauthorized .NET activation sample I found on their site. I just hope this hassle pays for itself in the number of licenses I sell because I'm starting to wonder if copy protection is worthwhile..

1 comment:

Christian said...

Hi,

As you are selling your software online and as you do not have your own server you may want to look at ByteShield’s copy protection and licensing as a service. Our service, ByteShield Software Usage Management:

Achieves protection for at least the significant revenue earning part of an application’s lifecycle. Conventional software protection technologies (Copy Protection/DRM) are often based on only a few hurdles and usually cracked quickly. In contrast ByteShield’s Software Usage Management (SUM) has high numbers of multiple hurdles, including removal of small but critical pieces of the code it protects and replacement of them at run-time. A cracker is forced to find and ‘fix’ one piece at a time. Even if a cracker can ‘fix’ each independent and different hurdle, each one will take a certain amount of time and if there 1,000, 10,000 or even 100,000 pieces of code need to be ‘fixed’, one by one, then the total cracking effort required will simply be too great to be worthwhile. In effect ByteShield’s technological approach to protecting software acknowledges that any protection created by man can eventually be cracked by man so the best protection is the one that takes the longest time to crack.
Establishes trust between application developers/publishers and customers as it is simple and automatic, requiring no end-user intervention, enable enhanced customer support, offer non-intrusive remote updating and renewal through a centralized license manager that monitors usage and manages protected software.
Provides new benefits to customers such as completely portable and flexible reinstalls and activations, possibility to back-up application, flexible and dynamic licensing, ability to buy application online or offline and automatic compliance with the software license.
Provides new benefits to developers/publishers such as no impact on development team, flexible and dynamic licensing, control number of active installations per sold copy, control of release date, ability to offer full feature trial versions, turn in every attempted copying into a sales opportunity, the application can be available on CD or as a download, disable application if charge backs occur, reduced costs for support services and update/patch delivery, compatibility with existing systems, provide usage trend information, direct communication channel with the end users and increased effectiveness of sales channel.

We strive to align our revenue model with yours - so whenever you get paid, you pay us. Thus, we protect all your trial versions for free (and since the protection is so strong, you don't have to cripple them).

I would like to suggest we set up a phone meeting where we walk you through some of how it works and show you the server features. It is of course convenient that we are in the same state. Tomorrow is pretty booked, but Tuesday looks good.

Regards,


Christian
ByteShield, Inc.
Silicon Valley, CA
info at byteshield dot net