views:

371

answers:

5

Hi,

We are developing a product in C#.Net. We would definately not like our product to be copied easily across machines (in short pirated). For that purpose can anybody suggest using a 3rd party tool or a home grown solution.

What are the pros and cons of each.

One negative about home grown solution is that the cost involved in creating one from scratch.

Can somebody comment on the technology to be used for licensing as .Net can be decompiled.

+4  A: 

You'll want a commercial tool, if you're serious about this.

You'll need a good obfuscator to handle the decompilation, and a licensing tool to handle licensing. You could write either on your own, but chances are, it's not your area of expertise, and you'll spend much more time and money writing it than buying a solution.

There are many options. Some flexible, easy to use options include EZIRIZ, CrypKey, and Xheo's product line. All have an obfuscator + licensing tool.

Reed Copsey
My first knowledge of Xheo was when this blog was written: http://ayende.com/Blog/archive/2009/02/02/open-letter-to-xheo-that-is-not-a-good-way.aspx today i re-read through alot of the comments and almost every single person that responded had nothing positive to say about Xheo and all resounded this story in similar fashions. I would be extremely wary of this company especially after all of this negative press on this story it didn't even seem like they cared to address it. That's not a company I'd want to risk my entire product's success on.
Chris Marisic
There - I added a few other options for the OP.
Reed Copsey
+1  A: 

If you intend on having your customers register the product over the internet, a simple solution is to have the registration return a unique key. From there the software would store that in a local key-store file along with some hard ware specific attributes like mac address, and some other hard ware information. Then simply have your software check that file at load time. The hard ware specific information is a simple way of preventing users from just copying the file from system to system.

Jay
Why do you keep writing 'hardware' as 'hard ware'?
Iulian
SIGH! does the spelling really matter in in this case?
Jay
+10  A: 

An important fact to remember is your software will be pirated. This is a fact. If your software isn't pirated that is a problem because it means people aren't even interested in using your software for free. This line might be hard to accept at face value, now take a step and breathe.

Once you've accepted my first point, the most important thing you have is your customer's confidence, read this horror story of dealing with Xheo: Open letter to XHEO: That is not a good way to do business.

No matter what you choose to do to handle registration/activation make sure it doesn't hurt your customers that actually paid for the software because the people that are intent on using it for free, will be using it for free. Even the most advanced (and system pervasive) copy protection schemes like Securom and Starforce that are basically viruses are all extracted out of programs by the "hackers". Don't treat your customers like thieves. All you want to stop is a person that buys your software from installing it all over their network for free. Or one user downloading your software and being able to zip up the installation directory and put it in a torrent.

Your copy protection scheme can easily break your business if it makes it harder for your customers to legitimately use your software. So tread carefully and go for the simplest and most cost effective strategy because all the money you invest in copy protection is basically thrown down the toilet.

Chris Marisic
I couldn't agree more. Copy protection only stops well-meaning people from not complying with the licence negligently. It never stops those intent on pirating your software.
Evgeny
+1  A: 

I know this is a bit late to answer, but maybe my answer is of some use to other people reading this.

My advice is to not put too much effort into securing your product. Make a good contract with the company that buys your software ensuring that you get money for the ones you sell.

Embrace the piracy! This means that your software is good enough for someone to break the law to get to use your tool - how wonderful. Your software is spread out to a lot of other people who might eventually buy a commercial license. You are now spreading your software faster and via channels you couldnt access yourself. Your software could gain a competitive advantage over competing software products by doing this.

Nothing has ever been so good for Microsoft than the piracy of especially the early versions of Windows, Word etc. They have in many ways become a industry standard.

H4mm3rHead
A: 

Developing a secure licensing system which handles various loopholes, exploits, etc employed by users and hackers/crackers requires a lot of time and experience. Why would you want to waste time creating a licensing system in-house from scratch instead of devoting your time to your core competency? You are better off using a proven, easy-to-use licensing system which offers reasonable amount of protection.

Take a look at CryptoLicensing for licensing and copy-protection.

For protection against decompiling and disabling/removing license checks from your assembly, you need an obfuscator. Crypto Obfuscator is one such.

logicnp