Reference
FAQ
Quick answers about Nebula.NET — supported frameworks, reflection & serialization, NuGet, single-file, performance, licensing and more.
Short answers to common questions. Follow the links for depth.
General
Does Nebula change my source code?
No. It transforms your compiled assemblies — there’s no using, no attributes, no API calls, and (with the CLI) not even a package reference in your projects.
Which frameworks are supported? .NET Framework 4.x and .NET Core / .NET 5, 6, 7, 8+. It works at the IL level, so C#, F#, and VB.NET are all supported.
Can I run it on a Linux/macOS build agent?
Yes — the nebula CLI is a .NET tool and runs anywhere .NET runs, so it fits Linux/macOS CI. The desktop GUI and the installers are Windows.
Is obfuscation reversible?
Not by others — that’s the point. You can translate a renamed stack trace back using the symbol map produced at build time (see de-obfuscation). Keep each release’s *.symbols.json.
Compatibility
Will it break reflection or serialization? Nebula auto-detects reflection-by-string and serialization attributes and preserves those names. Anything resolved by a name it can’t see, you preserve explicitly. See Keeping your app working.
Can I protect a library that other projects consume?
Yes — use preservePublicApi: true to keep the public API and obfuscate the internals. Multiple libraries that call each other are obfuscated together.
Can it obfuscate a NuGet package?
Yes — pass the .nupkg as input; Nebula protects the assemblies inside and repacks the package.
Does it work with single-file / self-contained apps? Yes — obfuscate the assemblies, then publish single-file from the protected output. Note that anti-tamper’s self-hash no-ops inside a single-file bundle; control-flow and string encryption still apply. See Protecting different project types.
My app uses WPF/Blazor/MAUI/Unity — is that covered? Yes — each has a recipe in Protecting different project types.
Protection & performance
What does it actually do to the code? Identifier renaming, string encryption, control-flow flattening, resource/method encryption, anti-tamper/anti-debug, metadata hardening, and (Enterprise) watermarking. See How it works.
Will it slow my app down?
Renaming and string encryption are negligible. Control-flow flattening adds a little per transformed method, so scope it to sensitive code with controlFlowInclude rather than everything. See Troubleshooting → Performance.
Is it a guarantee against cracking? No client-side protection is absolute — a determined attacker can still work at the IL level. Nebula raises the bar substantially (especially with control-flow + anti-tamper) and is about deterrence and defense-in-depth, not a mathematical guarantee.
Can it remove the “Unknown publisher” warning? That’s code-signing, not obfuscation. Sign the output with an Authenticode certificate (Nebula can apply it), or distribute via the Microsoft Store. See Installation.
Editions & licensing
What’s the difference between Free and paid? Free covers renaming plus a small number of encrypted strings/control-flow methods and is tool-only (CLI + GUI). Paid removes the caps and adds anti-tamper, resource encryption, signing, de-obfuscation, and build integration. See the editions table and Tutorials by edition.
Do I need a license on every developer’s machine? No — if you obfuscate on the build server, only the build machine(s) need a license. See MSBuild & CI.
Can I try the full product before buying? Yes — request a free trial; we send a time-limited license that unlocks everything.
Still stuck? Contact us — send your config and the exact error and we’ll help.