Why is obfuscation necessary for .NET Software?
When you create software targeting the .NET 2.0, 3.0 and 3.5 platforms, your C#, Visual Basic (or Delphi.NET, J# and many others) executable files and libraries (a.k.a. assemblies) are not compiled into machine code. Instead, they are transformed into MSIL, which stands for Microsoft Intermediate Language. Then, every .exe and .dll file you distribute and install is actually a MSIL bytecode. Using ILDASM.exe, an available tool that comes with Visual Studio, you can obtain MSIL source files from dlls and exes (assemblies). It is possible to tamper them with any text editor and, if lexical or semantical errors are not introduced, build them again using ILASM.exe, which also ships with Visual Studio and is also available on the Internet. The resulting executable file or library may look like yours, act most of the time like yours, but it is not – it is bugged by someone with not so good intentions. And it may be running right now in your server, in your customer’s servers, or perhaps in y