Programs. They start off in the IDE as nothing more than a blank page, then (with the blood, sweat, and toil of programmers and many sleepless nights) they turn into volumes of monospaced text, a standing testament to the dedication of programmers and the way they work. Then from the myriads of the source code and the magic of the compiler comes the executable file, the fruit of all the efforts. No one really sees the actual work that went into it: all they see is a file that runs and a program that works.
Well, that’s the way it’s supposed to go. But with Java and .NET, it doesn’t really work that way. These frameworks/virtual-machines rely on the concept of virtual machines, compiling to Byte Code (Java) or MSIL (.NET). What looks like an executable file is actually source code being passed on to the framework for translation and execution. So your source code is never safe, and it’s never really compiled.
We’ve been using .NET for our programs at NeoSmart Technologies for years now, and we’ve never really come across this as a problem, simply because our software’s always been and always will be freeware. However, in recent months we’ve seen some of our more popular programs like EasyBCD being decompiled and its source-code stolen left and right by those that don’t know any better. So we set off looking for the best obfuscation tool for the job, and found much more than what we were looking for.