There are many great .NET obfuscators available on internet, however, I didn't find one that really suit my needs so I create this list. I want to gather all over .NET Obfuscator so that it'll be the last one you ever need.
Utilization
Certain languages like Java and .NET can be easily decompiled into readable source code. Code obfuscation is a process that makes your application binaries harder to read with a decompiler. It’s an important tool for protecting your business’s intellectual property.
Why Obfuscate Code?
Compiled languages like C++ get converted directly to bytecode. The only way to reverse engineer how they work is with a disassembler, which is an arduous and complicated process. It’s not impossible, but trying to infer high level application logic from a stream of assembly language is hard.
On the other hand, languages like C# and Java aren’t compiled for any particular operating system. Rather, they’re compiled to an intermediary language, like .NET’s MSIL. The intermediary language is similar to assembly, but it can be easily converted back into the source code. This means that if you have a public DLL or executable that your business is distributing, anyone with a copy of your executable can open it up in a .NET decompiler like dotPeek, and directly read (and copy) your source code.
Code obfuscation can’t prevent this process—any .NET DLL can be plugged into a decompiler. What obfuscation does do is use a number of tricks to make the source code annoying as hell to read and debug.
The simplest form of this is entity renaming. It’s common practice to properly name variables, methods, classes, and parameters according to what they do. But you don’t have to, and technically there’s nothing stopping you from naming them with a series of lowercase L’s and I’s, or random combinations of Chinese unicode characters. To the computer, there’s no issue, but it’s completely illegible to a human:
IlIIIIlIIIllIIIllIIll
lIIIllIIllIlIIIIlIIIl
An basic obfuscator will handle this process automatically, taking the output from the build, and converting it to something that’s a lot harder to read. There’s no performance hit compared to non-obfuscated code
More advanced obfuscators can go further, and actually change the structure of your source code. This includes replacing control structures with more complicated but semantically identical syntax. They can also insert dummy code that doesn’t do anything except confuse the decompiler. The effect of this is that it makes your source look like spaghetti code, making it more annoying to read.
Another common focus is hiding strings from decompilers. In managed executables, you can search for strings like error messages to locate sections of code. String obfuscation replaces strings with encoded messages, which are decrypted at runtime, making it impossible to search for them from a decompiler. This usually comes with a performance penalty.
Other Options: Convert to a Compiled Language
Converting one programming language to another isn’t an entirely crazy idea—Unity uses IL2CPP, a converter that transforms .NET code into compiled C++ bytecode. It’s a lot more performant, but it also helps secure games against easy cracking, which is crucial for an environment plagued by piracy and cheaters.
Microsoft has CoreRT, an experimental .NET Core runtime using Ahead-Of-Time compilation, though it isn’t ready for production use.
Should You Obfuscate?
If you’re deploying code in untrusted environments where you want to protect your source code, you should almost always use at least a basic obfuscator to rename functions, methods, and properties to make decompiling take a bit more effort.
If you really need nobody to be able to decompile your app, you can use a more intrusive obfuscator, but really you should consider if the problem would be better solved by switching to a language that doesn’t have this issue, such as C++ or Rust.
Roadmap
See the open issues for a list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
Fork the Project
Create your Feature Branch (git checkout -b feature/AmazingFeature)
Commit your Changes (git commit -m 'Add some AmazingFeature')
Push to the Branch (git push origin feature/AmazingFeature)
Open a Pull Request
License
Distributed under the MIT License. See LICENSE for more information.
AppFuscator - Inteligence algorithm provide your application powerful protection!
ArmDot
ArmDot - Protection, software licensing tool, and obfuscator for C# and .Net with support of serial keys and files embedding
Arya
Arya - Arya is a simple obfuscator for .NET binaries.
AsStrongAsFuck
AsStrongAsFuck - A console obfuscator for .NET assemblies.
B =>
Babel
Babel - Protect your software against reverse engineering to safeguard the intellectual property of your code
Beds Protector
Beds Protector - Beds Protector | Best free obfuscation out right now ( ConfuserEx Mod )
BitHelmet
BitHelmet - BitHelmet obfuscator protects your .NET Portable Executables
BoxedApp
BoxedApp - Import and virtualize ActiveX, Flash and .Net runtime • Rich SDK for developers • Create custom packers • Supports both 32-bit and 64-bit applications • Virtual file system and registry
C =>
ConfuserEx
ConfuserEx - An open-source, free protector for .NET applications.
ConfuserEx 2
ConfuserEx 2 - Updated ConfuserEx (by mkaring), an open-source, free obfuscator for .NET applications.
Crypto
Crypto - Powerful Obfuscation & Code Protection For .Net That Actually Works!
Cyphor
Cyphor - Cyphor is more than just an obfuscator. Cyphor is the best, fastest, and most reliable obfuscation protection tool to work with.
cil-examining
cil-examining - A .NET Framework (.NET Core in the future) obfuscator. Owner is currently out sick thus working on project is stopped.
DarkFuscator - Code obfuscator for .NET framework programs. Outdated in 2016, but was very functional in 2010/2011.Uses the Mono.Cecil library for interacting with .NET assemblies.
DotNetSafer - Increase the security of your software, reduce costs and save time with the tools that dotnetsafer offers you to protect your intellectual property and guarantee the integrity of your .NET and .NET Core applications.
DCNETProtector - An open source tool to encrypt .NET assembly file, help people protect theirs copyright. It has a command line interface and some specific features. It claims to have only 6000 lines of code.
E =>
Eazfuscator
Eazfuscator - Eazfuscator.NET is the obfuscator for .NET platform.
Enigma Protector
Enigma Protector - A professional system for licensing and protectingexecutable files for Windows.
ElecKey
ElecKey - ElecKey is a suite of software and tools that provide a complete solution for software security, copy protection, and license management. It allows you to protect your software against piracy, tampering, and reverse-engineering, as well as gain full control over secure software distribution and licenses.
G =>
Guardship-.NET-Protector
Guardship-.NET-Protector - Guardship .NET Protector is a development software that helps to protect the executable file of .NET application by making its code unreadable for MSIL disassemblers.
Goldfuscator
Goldfuscator - A fork of the original SimpleObfuscator project, made for training.
ILProtector - ILProtector is a protector for .NET applications. ILProtector is designed to protect intellectual property of the software.
IntelliLock
IntelliLock - IntelliLock is an advanced 100% managed solution for licensing controls and applications. While .NET Reactor offers a licensing system based on native code protection, IntelliLock opts a 100% managed way to apply licensing and protection features. This way single files can be produced without the need of additional files.
IntelliProtector
IntelliProtector - IntelliProtector .Net Obfuscator is excellent Free tool for your IntelliProtector .Net projects.
Lime-Crypter - An obfuscation tool for .Net + Native files.
LoGic.NET
LoGic.NET - A more advanced free and open .NET obfuscator using dnlib.
M =>
MancoSoftware
MancoSoftware - Manco .NET Licensing System is the powerful licensing and copy protection software for .NET Windows Forms, WPF, WCF, WWF and ASP.NET applications, controls and components.
MdCrypt
MdCrypt - [WIP] A next-generation protector for .NET applications (.NET Framework, .NET Core, and more)
MemeVM
MemeVM - A small virtualizer for .NET which works together with ConfuserEx
ModPhuserEx - A .NET protector supporting .NET Core forked from the discontinued ConfuserEx
MPRESS
MPRESS - Free high-performance executable packer for PE32/PE32+/.NET executable formats!
N =>
netshrink
netshrink - netshrink is an exe packer aka executable compressor, application password protector and virtual DLL binder for Windows & Linux .NET applications.
Neo ConfuserEx
Neo ConfuserEx - Updated ConfuserEX, an open-source, free obfuscator for .NET applications
NetFuscate
NetFuscate - NETFuscate is a .NET obfuscator and a .NET code protection tool that offers protection against reverse engineering of your code.
NetShields
NetShields - A really strong & recommended for .NET Obfuscator
NETGuard
NETGuard - NETGuard.IO will decompose your file, encrypt your strings, data, resources, methods, will perform numerous runtime-based verifications to ensure a fully-shielded security foryour file. The list of feature can be founded on our official documentation page.
NET Reactor
NET Reactor - NET Reactor is a powerful .NET code protection and software licensing system which completely stops any decompiling.
NETZ Compressor
NETZ Compressor - 2004 .NETZ compresses Microsoft .NET executables
NET-Obfuscator
NET-Obfuscator - Simple .net obfuscator using Mono Cecil
PV Logiciels dotNet Protector - PV Logiciels dotNet Protector is a powerful .NET code protection system that prevents your assemblies from being decompiled.
R =>
Rzy Protector
Rzy Protector - Rzy Protector | A public confuserex modded
S =>
Semantic Designs
Semantic Designs - The C# Obfuscator tool scrambles C# source code to make it very difficult to understand or reverse-engineer
Self-Morphing C# Binary
Self-Morphing C# Binary - C# binary that mutates its own code, encrypts and obfuscates itself on runtime
SharpObfuscator
SharpObfuscator - It is a Software Protection tool, designed to help .NET developers efficiently protect their software. It will obfuscate and protect your .NET code, optimize your .NET assembly for better deployment, minimize distribution size, increase performance & add powerful post-deployment debugging capabilities.
Skater .NET Obfuscator
Skater .NET Obfuscator - Rustemsoft proposes Skater .NET Obfuscator, an obfuscation tool for .NET code protection. It implements all known software protection techniques and obfuscation algorithms.
SkiDzEX
SkiDzEX - A modded version of ConfuserEx | SkiDzEx
SmartAssembly
SmartAssembly - Protect your .NET code and IP with SmartAssembly
String Encrypt
String Encrypt - Encrypt strings in source code & files using randomly generated algorithms, and generate the corresponding unique decryption code for any supported programming language.
StrongVM
StrongVM - StrongVM is a virtualizing protector for .NET applications.
SpecterObfuscator - This Application will obfuscate your .NET Assembly
Spices
Spices - Spices.Net Obfuscator is a .Net code obfuscation, protection and optimization tool that offers the wide range of technologies to completely protect your .Net code and secure your data.
T =>
Themida
Themida - Advanced Windows software protection system
Unikod - Text styling & obfuscation library for C#
V =>
vot4cs
vot4cs - A Virtualization Obfuscation Tool for C# program
VaporObfusactor
VaporObfusactor - VaporObfuscator is an obfuscator for .net made with dnlib
VMProtect 3.4
VMProtect 3.4 - VMProtect protects code by executing it on a virtual machine with non-standard architecture that makes it extremely difficult to analyze and crack the software. Besides that, VMProtect generates and verifies serial numbers, limits free upgrades and much more.
Y =>
Yano
Yano - Yano is an advanced obfuscator for Microsoft .NET applications
Z =>
Z00bfuscator
Z00bfuscator - Z00bfuscator is the simple, open-source, cross-platform obfuscator for .NET Assemblies built on .NET Core