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 Codepublic class Program
{
static void Main( string[] args )
{
Console.ReadKey( true );
}
}
|
Obfuscated Codepublic class B
{
static void A( string[] )
{
Console.ReadKey( true );
}
}
|
Obfuscated & Encrypted Codepublic 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.