Top Related Projects
Open source obfuscation tool for .NET assemblies
.NET debugger and assembly editor
.NET deobfuscator and unpacker.
An open-source, free protector for .NET applications
Quick Overview
ConfuserEx is an open-source protector for .NET applications. It is designed to obfuscate and protect .NET assemblies from reverse engineering and tampering. ConfuserEx is a fork of the original Confuser project, with additional features and improvements.
Pros
- Offers a wide range of protection techniques, including name obfuscation, control flow obfuscation, and anti-debugging measures
- Highly customizable, allowing users to fine-tune protection settings for specific needs
- Actively maintained and regularly updated
- Supports both GUI and command-line interfaces for ease of use
Cons
- May significantly increase the size of the protected assembly
- Can potentially introduce compatibility issues with some .NET frameworks or third-party libraries
- Advanced protection techniques may impact performance in some cases
- Requires careful configuration to avoid over-obfuscation, which could lead to runtime errors
Getting Started
To use ConfuserEx, follow these steps:
- Download the latest release from the GitHub repository.
- Extract the files to a local directory.
- Create a configuration file (e.g.,
config.crproj
) with your desired protection settings. - Run ConfuserEx using the command-line interface:
Confuser.CLI.exe -n config.crproj
Alternatively, you can use the GUI by running ConfuserEx.exe
and loading your project and configuration through the interface.
For more detailed instructions and configuration options, refer to the project's documentation on GitHub.
Competitor Comparisons
Open source obfuscation tool for .NET assemblies
Pros of Obfuscar
- Open-source and actively maintained
- Supports multiple .NET frameworks, including .NET Core
- Offers a wide range of obfuscation techniques, including name mangling and control flow obfuscation
Cons of Obfuscar
- Less user-friendly interface compared to ConfuserEx
- May require more manual configuration for complex projects
- Limited protection against advanced reverse engineering techniques
Code Comparison
Obfuscar configuration example:
<Obfuscator>
<Var name="InPath" value=".\Input" />
<Var name="OutPath" value=".\Output" />
<Module file="$(InPath)\MyAssembly.dll" />
</Obfuscator>
ConfuserEx configuration example:
<project outputDir=".\Output" baseDir=".\Input">
<module path="MyAssembly.dll" />
<rule pattern="true" preset="maximum" />
</project>
Both tools use XML-based configuration files, but ConfuserEx offers a more streamlined approach with preset options, while Obfuscar provides more granular control over individual obfuscation settings.
.NET debugger and assembly editor
Pros of dnSpy
- Advanced debugging capabilities for .NET assemblies
- User-friendly interface with syntax highlighting and code navigation
- Supports editing and recompiling of decompiled code
Cons of dnSpy
- Limited obfuscation and protection features
- Primarily focused on reverse engineering rather than code protection
- May require additional tools for comprehensive security measures
Code Comparison
ConfuserEx (obfuscation example):
[Obfuscation(Feature = "virtualization", Exclude = false)]
public void SensitiveMethod()
{
// Method implementation
}
dnSpy (decompilation and debugging):
// Decompiled code view
public void SensitiveMethod()
{
// Decompiled method implementation
}
Summary
ConfuserEx is an obfuscator designed to protect .NET assemblies, while dnSpy is a debugger and .NET assembly editor. ConfuserEx focuses on code protection through various obfuscation techniques, whereas dnSpy excels in reverse engineering and debugging. While ConfuserEx helps developers secure their code, dnSpy aids in analyzing and modifying existing assemblies. The choice between the two depends on whether the goal is to protect code or to analyze and debug it.
.NET deobfuscator and unpacker.
Pros of de4dot
- Specialized in .NET deobfuscation, making it more effective for specific tasks
- Open-source with active community contributions
- Supports a wide range of obfuscators, including Confuser and ConfuserEx
Cons of de4dot
- Limited to deobfuscation tasks, unlike ConfuserEx which offers obfuscation capabilities
- May require more technical expertise to use effectively
- Less frequently updated compared to ConfuserEx
Code Comparison
ConfuserEx (obfuscation):
var project = new ConfuserProject();
project.Add(new ProjectModule(new ModuleDefUser("MyAssembly")));
var parameters = new ConfuserParameters();
ConfuserEngine.Run(project, parameters).Wait();
de4dot (deobfuscation):
var options = new DeobfuscatorOptions();
var deobfuscator = new DeobfuscatorInfo().CreateDeobfuscator();
var module = ModuleDefMD.Load("ObfuscatedAssembly.dll");
deobfuscator.DeobfuscateBegin(module);
deobfuscator.Deobfuscate();
Both repositories serve different purposes in the .NET ecosystem. ConfuserEx is primarily an obfuscator, while de4dot focuses on deobfuscation. The choice between them depends on whether you need to protect your code or analyze obfuscated assemblies.
An open-source, free protector for .NET applications
Pros of ConfuserEx (mkaring)
- More recent updates and active development
- Improved compatibility with newer .NET frameworks
- Enhanced obfuscation techniques and protection features
Cons of ConfuserEx (mkaring)
- Potential compatibility issues with older projects
- May require more configuration for optimal results
- Some users report increased file size after obfuscation
Code Comparison
ConfuserEx (yck1509):
public static string Decrypt(string b, int k)
{
byte[] b2 = Convert.FromBase64String(b);
for (int i = 0; i < b2.Length; i++)
b2[i] = (byte)(b2[i] ^ k);
return Encoding.UTF8.GetString(b2);
}
ConfuserEx (mkaring):
public static string Decrypt(string b, int k)
{
byte[] b2 = Convert.FromBase64String(b);
for (int i = 0; i < b2.Length; i++)
b2[i] = (byte)(b2[i] ^ k);
return Encoding.UTF8.GetString(b2, 0, b2.Length);
}
The code comparison shows minimal differences, with mkaring's version including an additional parameter in the GetString
method call for improved precision in string conversion.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
ConfuserEx
ConfuserEx is a open-source protector for .NET applications. It is the successor of Confuser project.
NOTICE
This project is discontinued and unmaintained. Alternative forked projects can be found in this issue.
Features
- Supports .NET Framework 2.0/3.0/3.5/4.0/4.5
- Symbol renaming (Support WPF/BAML)
- Protection against debuggers/profilers
- Protection against memory dumping
- Protection against tampering (method encryption)
- Control flow obfuscation
- Constant/resources encryption
- Reference hiding proxies
- Disable decompilers
- Embedding dependency
- Compressing output
- Extensible plugin API
- Many more are coming!
Usage
Confuser.CLI <path to project file>
The project file is a ConfuserEx Project (*.crproj). The format of project file can be found in docs\ProjectFormat.md
Bug Report
See the Issues Report section of website.
License
See LICENSE file for details.
Credits
0xd4d for his awesome work and extensive knowledge!
Members of Black Storm Forum for their help!
Top Related Projects
Open source obfuscation tool for .NET assemblies
.NET debugger and assembly editor
.NET deobfuscator and unpacker.
An open-source, free protector for .NET applications
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot