Referencia
Informe de protección
El protection-report.json / .html verificable que Nebula escribe junto a cada compilación: qué contiene, cómo leerlo y cómo exigirlo en CI.
Desde 2.2.0, cada compilación protegida escribe un Informe de protección junto a la salida:
protected/
MyApp.dll
MyApp.symbols.json
MyApp.protection-report.json ← legible por máquina (esquema estable y versionado)
MyApp.protection-report.html ← resumen compartible que puedes abrir en un navegador
Responde a la pregunta que todo ofuscador deja sin respuesta: ¿qué protegió realmente y cómo lo sé? El informe contiene solo recuentos y proporciones — nunca tus identificadores de código fuente, por lo que es seguro compartirlo con un cliente o un revisor de seguridad. Los únicos nombres que lista son los que ya son públicos en la salida (la superficie residual que un decompilador todavía puede leer).
Desactívalo con "generateProtectionReport": false en tu config.
Qué contiene
- Cobertura de identificadores — cuántos tipos, métodos y campos se renombraron del total renombrable, con proporciones y una puntuación de cobertura general.
- Protecciones avanzadas — cadenas y recursos cifrados, métodos virtualizados (Pro), métodos con ofuscación de flujo de control, referencias enrutadas por proxy.
- Protecciones aplicadas — las transformaciones que realmente se ejecutaron en esta edición, y las solicitadas pero no disponibles en tu edición.
- Superficie pública residual — cada tipo/miembro público que queda en claro, y por qué (API pública preservada, una regla de conservación, o detectado por reflexión). Es la brecha medible a revisar.
- Cobertura por tipo (Pro) — los mismos recuentos desglosados por tipo de salida.
- Identidad de la compilación — el nombre del ensamblado de salida, el target framework y el MVID, para que un informe quede ligado a una compilación exacta.
El JSON valida contra el esquema publicado (schemaVersion 1.0); los consumidores deben condicionar al número mayor de la versión.
Léelo o exígelo desde la CLI
# Imprime el resumen de cobertura de una compilación.
nebula verify --assembly protected/MyApp.dll
# Verja de CI: hace fallar la compilación (código 5) si la cobertura de identificadores es inferior al 80%.
nebula verify --report protected/MyApp.protection-report.json --min-coverage 0.80
verify resuelve el informe automáticamente cuando pasas --assembly (lee <name>.protection-report.json junto a él). Añade --json para el informe en bruto.
Verifícalo de forma independiente en Glass.NET
El objetivo es precisamente que no tengas que creernos. Abre el ensamblado protegido en el decompilador gratuito Glass.NET: su Inspector de ofuscación informa de la misma superficie pública residual a partir del propio ensamblado. Los recuentos deben coincidir salvo redondeo; si no, es un hallazgo que vale la pena plantear.
Free vs Pro
| Free | Pro | |
|---|---|---|
| Recuentos de cobertura + puntuación | ✓ | ✓ |
| Superficie pública residual | primeras 25 | lista completa |
| Detalle de cobertura por tipo | — | ✓ |
Agentes y automatización
nebula mcp expone una herramienta verify que devuelve el mismo resumen, de modo que un agente de codificación puede comprobar la cobertura de una compilación como parte de un flujo de CI o de revisión. Ver la referencia de la CLI.