~/wiseowl/demeanor $
Photo of Brent Rector, author of Demeanor for .NET
Brent Rector — author of Demeanor, the original .NET obfuscator.
Five decades in software: mainframes, minis, PCs, cloud, and AI.
Based in San Diego.
EST. 1999 · THE ORIGINAL .NET OBFUSCATOR

Decompiler-proof .NET.
In three lines.

Production-shipping since before .NET 1.0 launched. Rebuilt from the ground up for .NET 10. One NuGet package. One MSBuild property. Done.

Demeanor knot logo
BEFORE — your shipping assembly
public class PricingEngine
{
    private readonly decimal _baseRate;

    public decimal CalculateDiscount(Order order)
    {
        var tier = GetCustomerTier(order.CustomerId);
        var volume = order.Items.Sum(i => i.Quantity);
        return _baseRate * TierMultiplier(tier, volume);
    }
}
AFTER — what a decompiler sees
public class a
{
    private readonly decimal a;

    public decimal a(b A_0)
    {
        var a = a(A_0.a);
        var b = A_0.a.a(a => a.a);
        return a * a(a, b);
    }
}
Since 1999 No phone-home Per-company licensing Win / Linux / Mac

Why teams switch to Demeanor

The oldest .NET obfuscator. The only one with per-company licensing, no phone-home activation, and a perpetual purchase option.

Demeanor Dotfuscator Pro SmartAssembly
First released 2003 2007
Distribution Installer Installer
Build integration Post-build step Post-build step
Phone-home licensing Yes Yes
Per-company license Per-seat Per-machine
Perpetual option No (subscription only) No (subscription only)
Free tier Crippled (VS only) Non-distributable
Modern .NET .NET 8 .NET 8
Single package, all platforms Windows only Windows only
Source code license available No No
Works offline / air-gapped No No
Professional price ~$2,000+/yr ~$777/yr
Enterprise price ~$2,000+/yr ~$777/yr
View Pricing

Standard .NET commands. Nothing new to learn.

1

Install the CLI

dotnet tool install -g Demeanor.NET

One-time setup. Works on Windows, Linux, and Mac.

2

Add Demeanor to your project

dotnet add package Demeanor.NET.Build

Enables obfuscation for Release builds. Run once per project.

3

Build

dotnet build -c Release

Your Release output is now obfuscated. Every subsequent build is too.

4

See the result

demeanor inspect bin/Release/net10.0/MyProject.dll

Shows exactly what was renamed, encrypted, and obfuscated.

Full walkthrough with examples →

Layered protection, zero friction

Every technique compounds. Renaming alone raises the bar. Add encryption and control flow obfuscation, and static analysis becomes intractable.

Aa

Symbol Renaming

Types, methods, fields, properties, events, and parameters — all renamed to strip semantic meaning. Alpha or Unicode naming modes.

All tiers
" "

String Encryption

Encrypts string literals in-place. Decompilers see cipher text; strings decrypt transparently at runtime with per-method keys.

Professional+
#

Constants Encryption

Numeric and boolean constants are encrypted and wrapped in decryption stubs, removing magic numbers that reveal algorithm intent.

Professional+
{ }

Resource Encryption

Embedded resources — XAML, images, data files — are encrypted and compressed. Decompiled assemblies yield only cipher bytes.

Professional+
</>

Control Flow Obfuscation

Flattens and restructures method control flow graphs. Switch dispatch replaces natural branching, defeating pattern-based decompilation.

Professional+
→ →

Reference Proxy

Replaces direct method calls with delegate-based indirection. Call targets become invisible to static analysis and cross-reference tools.

Professional+
[ ]

Multi-Assembly

Obfuscate your entire application as a unit with --app. Cross-assembly references are renamed consistently, with type forwarding preserved.

Enterprise
Δ

Incremental Obfuscation

Feed a prior obfuscation report to keep rename mappings stable across builds. Patches stay small; customer deployments stay consistent.

Enterprise

Transparent pricing. No sales calls.

Per-company licensing — every developer in your organization is covered. No seat counting, no machine locking, no activation server.

Community
Free

Real obfuscation, not a crippled demo. Ship protected code at no cost.

  • Symbol renaming (types, methods, fields, properties, events, parameters)
  • Alpha naming mode
  • Single assembly
  • NuGet + MSBuild integration
  • Windows, Linux, Mac x64 & ARM
Get Started
Enterprise
$1,499 /year

Annual subscription. Unlimited developers. All updates included.

  • Everything in Professional, plus:
  • Multi-assembly obfuscation (--app)
  • Incremental obfuscation
  • Satellite assembly renaming
  • JSON obfuscation reports
  • Unlimited developers
  • Priority support

Need full source code access?

We offer a one-time source code license for organizations that require complete audit capability, custom modifications, or integration into proprietary build pipelines — the kind of control that defense contractors, financial institutions, and government agencies demand from their security toolchain.

Contact Us

Feature matrix

Feature Community Professional Enterprise
Symbol renaming
Alpha naming
Unicode naming
String encryption
Constants encryption
Resource encryption
Control flow obfuscation
Reference proxy
--all flag
Anti-disassembly
Reflection blocking
Multi-assembly (--app)
Incremental obfuscation
Satellite assemblies
JSON reports
NuGet + MSBuild
Cross-platform CLI
PriceFree$1,499/yr
LicensingUnlimitedPer-company, annual
UpdatesAlwaysAlways (while subscribed)

Built on day one. Rebuilt for today.

1999
Development begins on internal Microsoft project "Lightning" builds — before .NET is publicly announced.
June 2000
Demeanor announced and first beta released alongside .NET Beta 1. The first .NET obfuscator.
Feb 2002
.NET Framework 1.0 ships. Demeanor is already a mature, production-shipping product on day one.
2003–2020
Continuously updated through every .NET generation. Redgate evaluates and offers to acquire Demeanor for their tool portfolio.
2021
Per-seat phone-home licensing eliminated. Switched to per-company self-validating keys — no activation server, no machine locking, no seat counting.
2025–26
Complete ground-up rewrite. Modern C# 14, .NET 10, single NuGet package with Windows, Linux, and Mac binaries.

Start protecting your .NET code today

Install from NuGet. Enable with one MSBuild property. No installer. No signup.

Complete your purchase

You're purchasing Demeanor .

Per-company license — covers every developer in your organization.