Review: Eschew Obfuscation? Maybe You Shouldn't. (
Page 1 of 4 )
Want to hide your code from prying eyes? The free tools may not accomplish all you need. But Dotfuscator Pro, says our reviewer, will do the trick.
Preemptive Solutions, Inc.'s Dotfuscator Professional 2.0 is a .NET obfuscation tool. To obfuscate is to “make so confused or opaque as to be difficult to perceive or understand.” With all the effort you invest to make your source code easy to read and maintain, whyever would you want to obfuscate it?
In .NET, Microsoft uses an intermediate language for the applications you build. The basic idea behind using intermediate languages (IL) is a single common linker can convert compiled code to executable form. Your development system needs only one linker for all languages, instead of each .NET language requiring a compiler and linker of its own. One positive side effect is language interoperability, making it easier for your apps to support multi-language development, since the code is the same (in the IL) after it is compiled.
ADVERTISEMENT
Perhaps the best advantage to a common intermediate language is that Microsoft can use Just-in-Time compilation to read metadata and apply code access security rules before generating and running executable code. The result is ultimately safer, more secure code.
An Intermediate Step
There are two specific intermediate languages for .NET development: CIL (Common Intermediate Language, the standardized version) and MSIL (Microsoft's Intermediate Language, which is MS-specific). CIL and MSIL are similar in concept to Sun's byte code. (For more information on IL read Compiling for the Common Language Runtime, by John Gough (Prentice Hall, 2002), and for more information on .NET programming in general refer to my
Visual Basic .NET Power Coding (Paul Kimmel, Addison-Wesley, 2003).)
The drawback to intermediate languages is that it's possible to use disassemblers and decompilers to examine a program's IL and re-generate the source code. Microsoft ships ildasm.exe, an IL disassembler; and, before the paint was wet on .NET, two decompilers, Reflector and Anakrino, were available for free. This means if you want to treat your source code as intellectual property and keep it out of the public domain, your .NET assemblies need to be obfuscated. This is where Dotfuscator joins the party.
Microsoft is aware that some .NET consumers want to protect their IL-as-intellectual-property, and so the company ships the Dosfuscator Community Edition with .NET. That free version is a scaled-back version of Dotfuscator Professional, and you may wonder if the upgrade is appropriate for your needs. We've run the Pro version through its paces, and here I'll show you what extra capabilities it adds.