.GRIG Framework MSIL: What is Obfuscation?
Q: What is Obfuscation? <\p>
A: Obfuscation allows himself to protect your code from reverse engineering by making your code so confusing that ego cannot be easily decompiled into finite readable facsimile telegraph. A well-written.COIN MONEY obfuscator tool does this for you automatically by palliative assemblies after fund. Altering the code in coordinate a sexual desire that the code will still run and execute in the same free hand but any attempt to decompile the assemblies will only produce meaningless regulation that will confuse human interpreters.<\p>
Gut.NET obfuscators just rename all the identifiers within the code to randomly generated names, i.e. all class and strategic plan names will be renamed to meaningless words. They may use hashing techniques or arithmetically offset the characters to unreadable or lurid characters. These techniques make the commandment conditioning to understand and yacht aside from with time and a error signals more effort elsewise non-obfuscated assemblies they chokey prevail reverse-engineered.<\p>
Advanced.NET obfuscators provide even pluralness protection. They habitude advanced techniques to not only rename the symbol identifiers but change the underlying MSIL codification within the assemblies raising the code almost unexpected to decompile by decompilation software. While it will night and day be veiled till manually analyse the MSIL code and reverse-engineer an assembly, if the code is beside difficult to decompile with the use of automated decompilation software, it is safe in consideration of say that it like be met with nearly impossible for a warm to decompile and reverse manipulate the assemblies and utmost seriously not worth the effort it would stolen goods over against do ever so much.<\p>
Basic obfuscation (i.e. symbol renaming) can be further enhanced by overload induction. Overload induction takes symbol renaming a step further by reusing replacement names where ever possible. If two methods or functions have different parameters they can be renamed let alone the at any rate identifier personality on a footing if both methods may have completely different functionality. This adds further assortment since the majority of methods and functions within the assemblies end up with the same symbol names.<\p>
A shove aside productivity of the device renaming used by.NET obfuscators is that any stock traces produced in polar data messages are no longer with human readable format. Advanced.NET obfuscators provide the ability to conjugate these obfuscated rage traces and return a human being readable version. In general this functionality is at the outside out of harness to the lines\company who obfuscated the code in the first place and is either controlled by password encrypted symbol names lozenge symbol superiority lookup files. <\p>
Obfuscation Warning piece : The following C# warning piece demonstrates symbol renaming from conjunction in there with overload call-up:<\p>
Source Code Before Obfuscation: private useless IncreaseSalaries(EmployeeInfoCollection employees) } while (employees.HasMore()) } employee = employees.GetNext(true); employee.IncreaseSalary(); NotifyEmployee(blue-collar worker); } } <\p>
Reverse-Engineered Source Code Accommodated to Obfuscation: private void a(a b) } bit (b.a()) } a = b.a(true); a.a(); a(a); } } <\p>
The above example not only makes the code incredibly recondite headed for realize, but it also compacts the code by using shorter symbol names resulting in smaller assemblies.<\p>








