Advanced obfuscation features for .NET platform
Agile.NET obfuscator goes beyond traditional obfuscation methods. In addition to renaming your metadata entities, it also supports advanced obfuscation methods that will harden your overall protection scheme and foil reverse engineering altogether.
See more details below.
Agile.NET obfuscator renames all metadata constructs, this includes namespaces, class names, method signatures and fields as well as methods implementation and string values of your assembly. Renaming scheme includes 'unreadable chars' scheme, this method will transform classes, methods and field names to unprintable unicode chars. When decompiled, the result is an extremely difficult to understand source code. Since unprintable chars are used it won't be possible to compile the sources produced after decompilation.
Agile.NET obfuscator provide control of flow obfuscation, control flow obfuscation hides the control flow information of the program by transforming exiting code flow patterns to semantically equivalent constructs, however different than the code originally written. The control flow obfuscation algorithm converts the original implementation into spaghetti code thus making it extremely harder to infer program logic. Agile.NET .NET obfuscator ensures that application code flow of the obfuscated assembly remains intact.
Cross Assembly Obfuscation allows renaming of external references thus dramatically increasing the number of obfuscated constructs. Given a set of assemblies that interface each other, Agile.NET will rename classes, methods and fields referenced from other assemblies uniformly. For example, if class A declared in assembly A is referenced from assembly B and Agile.NET renames class A to A1, it will also rename B's external reference from A to A1.
Incremental obfuscation allows the developer to make changes to the original sources after releasing an obfuscated assembly and then provide a patch to the user that reflects the changes to the original application while preserving the name-mapping used in the original release. In order to accomplish this, a map file must be saved and later used to ensure that the renaming is preserved when making changes and re-releasing the obfuscated assembly.
It is essential that an obfuscator keep the functionality of the software totally intact while making the original source code unrecognizable if the obfuscated assembly is decompiled. Agile.NET obfuscator ensures that the obfuscated assembly will run the same way as the original assembly.