Grab the latest build from Releases:
| Package | Contents |
|---|---|
ConfuserEx.zip |
CLI + GUI combined |
ConfuserEx-CLI.zip |
CLI only (for CI/CD and automation) |
ConfuserEx-GUI.zip |
GUI only (Windows, WPF) |
Extract the zip anywhere. No installer required.
The pre-release tag on the Releases page is updated automatically with every push to the pre-release branch. Use these to test recent fixes before they are merged into a stable release.
- Windows 10/11 (GUI requires WPF; CLI works cross-platform on .NET 10 runtime)
- .NET 10 Runtime (or later)
- Run
ConfuserEx.exe - Drag your
.exeor.dllonto the main window (or click Add under the Modules section) - Set the Output Directory
- Choose a Preset (
minimum,normal,aggressive, ormaximum) — or add individual protections - Click Protect!
The protected assembly is written to the output directory.
If your assembly depends on DLLs that aren't in the same folder, add their directories as Probe Paths so ConfuserEx can resolve them.
Confuser.CLI.exe my-project.crprojThe CLI reads a project file (.crproj) that describes which modules to protect and which protections to apply.
<project outputDir=".\Confused" baseDir=".\bin\Release\net8.0">
<rule preset="normal" pattern="true" />
<module path="MyApp.exe" />
</project>This applies the normal preset to MyApp.exe and writes the output to .\Confused.
Confuser.CLI.exe my-project.crproj -o .\outputSee the CLI Reference for all options.
You can configure protections directly in source code using [Obfuscation] attributes:
using System.Reflection;
[assembly: Obfuscation(Exclude = false, Feature = "preset(normal);+rename;+ctrl flow")]
namespace MyApp {
[Obfuscation(Exclude = false, Feature = "constants")]
class Program {
static void Main() {
Console.WriteLine("Hello, obfuscated world!");
}
}
}See Declarative Obfuscation for the full attribute syntax.
Add the NuGet package to your project:
<PackageReference Include="Confuser.MSBuild.Tasks" Version="1.7.0-*" />This runs obfuscation as a post-build step. Configure protections via a .crproj file referenced in your project settings.
ConfuserExx automatically resolves runtime assembly paths for all supported frameworks:
- .NET Framework 2.0 through 4.8 (from the GAC / reference assemblies)
- .NET Core 3.x, .NET 5, 6, 7, 8, 10+ (from the installed runtime packs)
No manual probe paths are needed for standard framework assemblies. If your target uses a custom runtime location, add it as a probe path.
- Protection Reference — understand what each protection does and how to configure it
- Project File Format — full
.crprojschema with pattern expressions and rule inheritance - CLI Reference — all command-line options