.Net Obfuscator Features

In the following pages, we will go through the various features of GillSoft .Net Obfuscator which can be used to protect your applications from the prying eyes of the software pirates.

Introduction

Before we show the features of the obfuscator, here is a decompiled version of a piece of code taken from GS Sales Manager (obtained by using Reflector (TM))

And here is one method from the above class.

As you can clearly see it is very easy to reverse engineer your code.

To prevent reverse engineering of your .Net Assemblies, GillSoft .Net Assembly Obfuscator employs following features

  • Name obfuscation: The names of name-spaces, classes, fields, properties, methods, parameters are unreadable.
  • Dummy method injection: Add some dummy methods in every class to make it difficult to find real methods.

Method Renaming

In the following screen-shot, you can see that the names of the classes and methods do not have any resemblance with original code and thus pose some hindrance in deducing the functionality of classes and methods from their names.

To make the method names unreadable, the Obfuscator can be instructed to use Unicode characters from an obscure range too.

Dummy Overload Methods

More methods are added to the assembly. This leads to increase in the size of resulting assembly, but hides the original methods like a needle in hay-stack.

In following screen-shot, you see one method overload has been added to the code. As more methods are added, the original method becomes obscure.

Prevent Decompilation

Currently, tools like Reflector(TM) can be used to see the body of any method which does not help even if you use the above features. Using our Obfuscator, the methods are modified slightly so that they cause Reflector(TM) to fail but the assembly still works as it should.

In following screen-shot, you see that the code of method body cannot be seen where-as it was possible before.

String Encryption

All the text strings in the code are encrypted so that changing of copyright messages is not possible by using simple binary file editors.

Other features

Other features:

  • Can be invoked from command line: The obfuscator can be called from command line and thus can be called from batch files with specific command-line parameters.
  • Can be invoked as MSBuild(TM) task: It can be integrated with build process (MSBuild / Nant) and does not need any special steps to be taken for using it. The default target file obfuscates assembly only if it is being built for Release configuration.