There are several ways to protect and obfuscate your .NET code against reverse-engineering. The features at a glance:
When we develop a program, we often present the most valuable information in form of symbol names: names of functions, variables, classes. This information is precious to an intruder who wants to get an understanding of our software.
The simplest and the most effective approach to conceal this information is to make the names irrelevant to what happens inside the program. We will just make the names of all the symbols unreadable — when it is possible.
String encryption and compression
Other thing that discloses the information about how a program functions is strings. To hide this information, Eazfuscator.NET substitutes the strings in your code with calls of special encryption functions, which render your strings perfectly at runtime, leaving them unreadable to an intruder. Also, these functions make the size of your strings lesser by compressing them.
Your assemblies weigh less!
Code and data virtualization
There are situations when we want to protect a part of our program more than anything else. We think of a person who would inspect our code as of well-motivated and of one who would go for a desperate measures. In this case, the symbols and strings protection is just not enough.
Here we offer you a radical approach: to change the way your program is presented in memory and on disk. Our code virtualization technique translates your .NET byte code to a totally unrecognizable random-generated byte sequence, which still perfectly functions at runtime. In other words, each time you obfuscate your program, we generate a new custom virtual machine to work for you!
No one will be able to get through.
Automatic code optimization
Many of us have dreamt of being able to know every performance-sensitive aspect of the platforms and programming languages we use. This way, we would always be careful to write only the fastest code. Still, not many of us are actually aware of all the performance-related details, which often change while the platform evolves.
With Eazfuscator.NET, you don't need to be a .NET performance expert to make the top-performing applications. We perform code optimization automatically for you by replacing code fragments which are proven to be slow with their faster equivalents — behind the scenes. In some cases, optimization may make your code faster by hundreds of times. Right now there is a big list of scenarios we take into account during the optimization. And this list will grow.
Resource encryption and compression
If your product is ambitious enough, it includes many valuable assets. Almost any popular application includes a designer-created icon set. If you are a game developer, the original game sounds would cost you a lot. When your assembly resources contain security information such as private keys, it becomes very sensitive.
To cover all these things protected, we transparently encrypt the resources for you when you ask it.
Code control flow obfuscation
The .NET languages compilers usually generate similar MSIL code fragments for the similar fragments of your high-level code. This fact allows the decompiler tools to reverse-engineer the high-level code (in C#, for example) from the .NET assemblies.
Eazfuscator.NET supports an advanced technique called control flow obfuscation, when the MSIL code gets replaced with functionally equivalent, but different instructions. Decompilers often crash on such code, so this may stop an intruder from trying to break into your assembly.
Assemblies merging and embedding
In some cases, we need to make one assembly from several ones. There are two methods of doing this: merging and embedding.
Eazfuscator.NET merges or embeds assemblies for you in easy way: you need to add one line of code to your project, where you specify which assembly to mix in. We are responsible for all this to be done correctly and quietly — during the obfuscation process.
XML documentation filter
If you are developing a class library, it is very probable that you use the auto-generated XML documentation files. The security problem concerning them is that they contain information describing your library implementation details: names and descriptions for private types, methods and fields.
We take care to automatically remove all the implementation-disclosing data from the XML documentation files.
After your assembly is obfuscated with Eazfuscator.NET, it doesn't become a brick of non-debuggable mess. You can always get a line number where an unhandled exception appeared, view a readable stack trace, and even attach the debugger to walk through your obfuscated code.
Supported platforms and technologies
- .NET Standard versions 1.0 – 2.1
- .NET Core versions 1.0 – 3.1
- .NET Framework versions 2.0 – 4.8
- XAML with intelligent renaming of symbols
- Enterprise-grade technologies: ClickOnce, VSTO and many others
- Universal Windows Platform (UWP)
- Gaming technologies: Unity, MonoGame and XNA
- Third-party platforms: Mono and Xamarin
- Integration with Microsoft Visual Studio 2005 – 2019
- Integration with JetBrains Rider 2019.1+
The last but not least. The User Interface
Eazfuscator.NET provides an easy to use GUI interface as well as classical command line interface.