Nebula.NET
Tutoriales por edición
Guías completas de principio a fin para las ediciones Free, Pro y Enterprise — elige tu edición y sigue los pasos para tu caso de uso.
Esta página tiene una guía completa para cada edición. Encuentra tu edición abajo y sigue los pasos para tu escenario. Cada tutorial es autónomo, así que solo necesitas leer el que te corresponde.
| Edición | Para quién es | Integración con la compilación |
|---|---|---|
| Free | Probarlo; proyectos pequeños o abiertos | No — solo la herramienta (CLI + interfaz gráfica) |
| Pro | Apps y bibliotecas comerciales | Sí — MSBuild / CI |
| Enterprise | Equipos más grandes; trazado de filtraciones; aislados (air-gapped) | Sí — puestos CI flotantes |
Para comprobar qué edición estás ejecutando en cualquier momento:
nebula license
La interfaz gráfica muestra lo mismo en su barra de título y en el cuadro About (FREE EDITION, PRO o ENTERPRISE).
Tutorial de la edición Free
La edición Free es la herramienta completa — la CLI (nebula) y la app de escritorio — con tres límites: hasta 2 cadenas cifradas, hasta 2 métodos protegidos con flujo de control y sin desofuscación de trazas de pila. El renombrado de identificadores es ilimitado. No está integrada con la compilación: ofuscar como parte de dotnet build es una característica licenciada, así que en Free ejecutas la herramienta a mano o como tu propio paso de publicación.
Escenario A — proteger un ensamblado (interfaz gráfica)
- Instala Nebula.NET desde la página de descarga y abre la app de escritorio.
- Haz clic en Open y selecciona tu ensamblado compilado (p. ej.
bin\Release\net8.0\MyApp.dll). No se selecciona nada de forma predeterminada — es intencional para que los inputs grandes se mantengan ágiles. - En el árbol, marca los miembros que quieras proteger (o el nodo del ensamblado para seleccionar todos).
- Elige una carpeta de salida, activa Rename, Encrypt strings y Control flow, y haz clic en Protect.
- Ejecuta tu app desde la carpeta de salida para confirmar que se comporta de forma idéntica.
Escenario B — proteger un ensamblado (CLI)
-
Crea
nebula.config.jsonjunto a la salida de tu compilación:{ "schemaVersion": 1, "inputs": ["bin/Release/net8.0/MyApp.dll"], "outputDirectory": "protected", "preservePublicApi": true, "encryptStrings": true, "controlFlowObfuscation": true } -
Ejecútalo:
nebula --config nebula.config.json -
La copia protegida se escribe en
protected/. Ejecuta tus pruebas contra ella.
¿Llegaste a los límites? Si tu app tiene más de 2 cadenas o métodos que valga la pena proteger, Nebula protege los 2 primeros de cada uno y te indica que el resto se omitió porque estás en Free. Esa es la señal para pasar a Pro, que elimina todos los límites y añade anti-manipulación, cifrado de recursos y desofuscación.
Lo que Free no hace
- Sin integración con
dotnet build— la tarea de MSBuild y la propiedadNebulaObfuscaterequieren una licencia. En Free, ofusca como un paso manual o con tu propio script. - Sin desofuscación de trazas de pila — no puedes mapear una traza de pila de producción renombrada de vuelta a los nombres originales.
¿Listo para eliminar los límites? Consulta Obtener una licencia.
Tutorial de la edición Pro
Pro (la edición Licensed) elimina todos los límites de Free y desbloquea la anti-manipulación/anti-depuración, el cifrado de recursos, la firma Authenticode, la desofuscación de trazas de pila y la integración con la compilación. Esta es la edición para distribuir un producto comercial.
Paso 1 — activa tu licencia
Tras la compra recibes una clave de la forma LIC-….
nebula register --key LIC-XXXXXXXXXXXX
nebula license # should now say: Licensed to <you> … / All features enabled.
La activación vincula esta máquina a un puesto y devuelve un arrendamiento firmado, tras lo cual Nebula se ejecuta sin conexión hasta que el arrendamiento se renueva.
Paso 2 — proteger en cada compilación (recomendado)
En lugar de ejecutar la herramienta a mano, deja que lo haga la compilación. Añade las propiedades al proyecto que produce tu ensamblado distribuible:
<PropertyGroup>
<NebulaObfuscate>true</NebulaObfuscate>
<NebulaConfigFile>nebula.config.json</NebulaConfigFile>
<NebulaPreservePublicApi>true</NebulaPreservePublicApi>
<NebulaControlFlow>true</NebulaControlFlow>
<NebulaEncryptStrings>true</NebulaEncryptStrings>
</PropertyGroup>
Ahora dotnet build -c Release produce un ensamblado protegido automáticamente. Consulta MSBuild y CI para la lista completa de propiedades.
Paso 3 — proteger solo tus compilaciones oficiales
Un requisito común: las compilaciones de los desarrolladores quedan sin ofuscar, y solo se protege la compilación que produce tus paquetes distribuibles. Como NebulaObfuscate es simplemente una propiedad de MSBuild, déjala sin establecer en todas partes y establécela como una variable de entorno solo en el agente de compilación:
NebulaObfuscate=true
NEBULA_LICENSE=C:\keys\nebula-license.json # a file PATH (or activate an online key once: nebula register --key LIC-…)
Las máquinas de los desarrolladores (sin la variable) compilan exactamente como antes; el agente de compilación protege automáticamente — mismo código, sin flags ni cambios de código. NEBULA_LICENSE es una ruta de archivo, no una clave; en un agente persistente puedes, en su lugar, activar una clave en línea una vez con nebula register --key LIC-…. El paso a paso completo (cmd / PowerShell / bash) y las opciones de licenciamiento están en MSBuild y CI.
Paso 4 — firmar y desofuscar
-
Firma la salida protegida (Authenticode / nombre seguro) para que se distribuya con confianza — establece
strongNameKeyFileen tu configuración. -
Desofusca una traza de pila de producción de vuelta a los nombres originales:
nebula deobfuscate --map protected/MyApp.symbols.json --input crash.txtConsulta Desofuscar trazas de pila.
Paso 5 — múltiples ensamblados
Si renombras miembros públicos que otros de tus ensamblados llaman, ofúscalos juntos para que las referencias se reescriban de forma consistente. Añádelos todos a inputs y habilita crossAssemblyRename. Consulta Múltiples ensamblados y renombrado entre ellos.
Tutorial de la edición Enterprise
Enterprise incluye todo lo de Pro más el trazado de filtraciones, un nivel de flujo de control agresivo y un licenciamiento pensado para equipos más grandes. Las claves de Enterprise se activan exactamente igual que las de Pro:
nebula register --key LIC-XXXXXXXXXXXX
nebula license # shows: Enterprise, licensed to …
Escenario A — rastrear filtraciones con marca de agua por cliente
Incrusta un id oculto y único en la compilación de cada cliente para que un binario filtrado sea rastreable.
-
Da a cada cliente un id distinto en su configuración:
{ "schemaVersion": 1, "inputs": ["bin/Release/net8.0/MyApp.dll"], "outputDirectory": "protected", "watermark": "CUST-ACME-0042" } -
Compila una salida separada por cliente y anota qué id fue para quién.
-
Lee la marca de nuevo desde una filtración sospechosa:
nebula watermark --input suspected.dll # Watermark: CUST-ACME-0042
Escenario B — máxima protección para ensamblados sensibles
Sube el flujo de control al nivel agresivo exclusivo de Enterprise para tu código más valioso:
{ "controlFlowObfuscation": true, "controlFlowIntensity": "aggressive" }
Bajo licencias que no sean de Enterprise esto se degrada automáticamente a intensidad estándar, así que la misma configuración es segura para compartir en todo un equipo.
Escenario C — servidores de compilación CI sin consumir puestos de desarrollador
Enterprise incluye licencias flotantes de servidor CI: protege en los agentes de compilación sin consumir un puesto de desarrollador, más activación on-prem / aislada (air-gapped) para entornos seguros que no pueden llegar a internet. Configúralo como en el paso 3 de Pro, usando la disposición de CI/servidor de compilación de tu acuerdo de Enterprise. Consulta Características de Enterprise.
¿Qué edición necesito?
- Free — evaluación, o un proyecto pequeño/abierto, y te vale con ejecutar la herramienta a mano.
- Pro — una app o biblioteca comercial; quieres protección ilimitada y protección automática en cada compilación.
- Enterprise — necesitas trazado de filtraciones, el flujo de control más fuerte, o licenciamiento flotante/aislado para un equipo.
Compara los planes en la página de precios y consulta la comparación de ediciones completa.