This topic comes up at least once a month and my response is always the same: stop treating your legitimate customers like criminals!

Below is my rant from the last thread about this. There are many threads about this issue.

Quote Originally Posted by kasracer
These kinds of questions have been poised many times in this forum. My opinions are very user-experience-centric.

Quote Originally Posted by GaryMazzone
What software anyone using to perform obfuscation of your code before sale?
None. .Net's design makes applications easy to disassemble. What does obfuscation do? It hides the meanings behind your code (i.e. variable renaming) and also creates method overloads to hide the purpose of your methods. Some even go as far as encryption but in the end it doesn't matter.

You'll make it a little harder for the occasionally cracker but beyond that it's ineffective. You can still follow the process flow from obfuscated code. Since encrypted assemblies can't run by themselves with the framework they have to be decrypted at some point making them vulnerable. It would also have the decryption key embedded within itself (otherwise how could it decrypt itself?).

Obfuscation is a waste of money in my opinion. You developed in .Net so you knew the risks before hand. Trying to use a rapid development focused framework for a native application is never a good idea.

Quote Originally Posted by GaryMazzone
Also anything to prevent piracy?
No. Think about it this way: Joe wants to pirate a copy of your software. Do you think he is going to
  1. Attempt to copy a CD
  2. Attempt to install someone else's copy
  3. Find it at a typical software pirating website.
If you guessed 3 then you're correct. No matter what software protection scheme(s) you employ on your software, 99.9% of pirates will be completely unaffected because they downloaded the copy someone else broke.

The biggest problem I have with software companies is when they treat their customers like criminals. I'm very against any type of DRM and copy-protection on all types of software and media as it only punishes the legitimate user and does absolutely nothing to the pirate.
Quote Originally Posted by GaryMazzone
Allow timed demo of application?
I have no qualms with this. Keep on keepin' on
In the end, the pirated version of any application is better than the original because they remove the annoying aspects of the original. Don't end up like this.
Quote Originally Posted by ntg
Regarding code protection, obfuscation will not stop a determined person who knows .Net from cracking your app. I'd strongly suggest Protector which makes a cracker's job much more difficult. Down side of protector is that it's quite pricey.
Protector is also quote worthless. It only takes one software cracker to crack your application and it's done. It'll be on the net and anyone can download that copy.

Protector is really for upper management. It'll stop the little guy but not the pirate who makes it available to the little guy.