XHEO.com

What is Obfuscation?

When your .NET project is compiled Visual Studio generates an Assembly containing Microsoft Intermediate Language (MSIL) instructions, managed resources and meta data describing the types, methods, properties, fields and events in your assembly. Obfuscation is the process of renaming this meta-data in an Assembly so that it is no longer useful to a hacker but remains usable to the machine for executing the intended operations. It does not modify the actual instructions or mask them from observation by a hacker.

The process is most easily demonstrated with an example.

Original Code

public class Program
{
  static void Main( string[] args )
  {
    Console.ReadKey( true );
  }
}

Obfuscated Code

public class B
{
  static void A( string[] )
  {
    Console.ReadKey( true );
  }
}

Obfuscated & Encrypted Code

public class B
{
  static void A( string[] )
  {
    
  }
}

This example demonstrates only the most basic obfuscation and Code Encryption. Imagine instead a large class library with many methods and properties sharing the name 'A'. It would be difficult for a hacker to determine which method is actually being called or what that method does. DeployLX CodeVeil uses advanced techniques to maximize the confusion added by obfuscation and to thwart hackers form even observing the obfuscated code in any sort of offline browsing tool like Reflector or ILDASM.

What Obfuscation Will Do

  • Significantly increase the difficulty of understanding or modifying an assembly's code.
  • Reduce the size of your assembly by reusing the same names for multiple items.
  • When Kill Reflectors is selected, prevent or severely limit tools like Reflector or ILDASM from disassembling and reading your code.
  • Purge un-used meta-data that is never used at runtime and is only used when compiling assemblies.

What Obfuscation Will Not Do