Reference
CLI reference
Commands, options and exit codes for the nebula command-line tool.
The nebula command protects assemblies from a JSON config and provides supporting commands for licensing and diagnostics.
Protect (root command)
nebula --config <file> [options]
| Option | Description |
|---|---|
--config, -c | Path to the JSON configuration file (required). |
--output, -o | Override the outputDirectory from the config. |
--preserve-public-api [true|false] | Override preservePublicApi. |
--quiet, -q | Suppress progress; still print warnings/errors. |
--json <file> | Write a machine-readable run summary (handy in CI). |
Configuration keys
{
"schemaVersion": 1,
"inputs": ["bin/Release/net8.0/MyApp.dll"],
"outputDirectory": "protected",
"preservePublicApi": true,
"encryptStrings": true,
"controlFlowObfuscation": true,
"encryptResources": true,
"antiTamper": true,
"antiDebug": true,
"metadataHardening": true,
"verifyOutput": true
}
Other keys include exclude / include filters, excludeNamespaces, controlFlowInclude / controlFlowExclude, encryptStringsInclude / excludeStrings, strong-name signing (strongNameKeyFile, delaySign) and Authenticode (authenticodeCertFile, authenticodeTimestampUrl).
Other commands
nebula inspect <assembly> # list methods & string literals for selective protection
nebula register --key LIC-... # activate an online license on this machine
nebula machine-id # print this machine's activation id
nebula license # show the current edition / license
nebula deobfuscate --map <symbols.json> --input <trace.txt> # translate a stack trace
Exit codes
| Code | Meaning |
|---|---|
0 | Success |
2 | Invalid configuration |
6 | License required / activation failed |
64 | Usage error |
Use the exit code in CI to fail a build if protection didn’t succeed.