Nebula.NET
.NET obfuscation & hardening
Nebula.NET
Getting started
Install Nebula.NET, protect your first assembly, and verify the result.
Installation
System requirements and how to install the Nebula.NET CLI and GUI.
How it works
A tour of Nebula.NET’s protection transforms and how they keep your app’s behavior intact.
Desktop GUI
Use the Nebula.NET desktop app to choose exactly what to protect and run it — no command line.
Tutorials by edition
Complete, end-to-end walkthroughs for the Free, Pro and Enterprise editions — pick your edition and follow the steps for your use case.
Protecting different project types
Recipes for every kind of .NET project — libraries & NuGet packages, WPF/WinForms, ASP.NET Core & Blazor, MAUI, console apps & services, Unity, single-file, F#/VB.
Framework support matrix
Which .NET runtimes, app models and languages Nebula.NET protects — .NET Framework 4.x through .NET 10, Native AOT, Blazor, MAUI/Xamarin, Unity, and more.
Hardening your CI/CD pipeline
Obfuscate, sign, and scan your .NET build artifacts in CI — the release-pipeline hardening steps, in the right order, with Nebula.NET and the free Glass.NET.
Linux, macOS & CI
Run the Nebula.NET protector anywhere .NET runs. Install the cross-platform `nebula` dotnet tool on Linux, macOS or Windows, use it in containers, and drop it into GitHub Actions, GitLab CI or Azure Pipelines.
Code virtualization
Compile your most sensitive .NET methods to a custom bytecode run by an embedded VM — so their logic no longer exists as IL and can’t be decompiled. Nebula.NET Enterprise.
Protecting Blazor WebAssembly
Obfuscate a published Blazor WebAssembly app and keep it loading — Nebula.NET repairs the boot-manifest integrity hashes and pre-compressed copies so the browser accepts the protected assemblies.
Resisting automated deobfuscation
How Nebula.NET stands up to de4dot and other automated deobfuscators — control-flow that can’t be constant-folded, string encryption that can’t be auto-stripped, proxy-hidden call graphs, and code virtualization.
Protecting .NET MAUI & Xamarin apps
Obfuscate a .NET MAUI (or Xamarin) app with Nebula.NET — protect your app assemblies while keeping XAML data-binding intact, across Android, iOS, Windows and Mac Catalyst.
Reference
Protection report
The verifiable protection-report.json / .html that Nebula writes beside every build — what it contains, how to read it, and how to gate CI on it.
Keeping your app working
Reflection, serialization, DI, EF and XAML all resolve names at runtime — here is what Nebula preserves automatically and how to preserve the rest.
Configuration reference
Every field in nebula.config.json — types, defaults, and what it does.
CLI reference
Commands, options and exit codes for the nebula command-line tool.
MSBuild & CI
Protect your assemblies automatically on every build and in your CI pipeline.
De-obfuscating stack traces
Turn an obfuscated crash report back into original names using a run’s symbol map.
Multiple assemblies & renaming across them
Obfuscate interdependent assemblies together so cross-assembly references stay valid — including how to rename public members shared between your own assemblies.
Troubleshooting
Symptom → cause → fix for the common issues after obfuscation: missing members, serialization, XAML binding, reflection, SmartScreen, strong names and more.
FAQ
Quick answers about Nebula.NET — supported frameworks, reflection & serialization, NuGet, single-file, performance, licensing and more.
Annotations
Express protect and keep rules in your source with the Nebula.Annotations attributes — [Keep], [Exclude], [Rename], [Protect], [EncryptStrings].
Release notes
What changed in each Nebula.NET release.