Skip to content
← Todas las publicaciones
· Delta1 Labs AnuncioNebula.NETOfuscación

Nebula.NET 1.1: virtualización de código, protección de Blazor WASM y cómo vencer a de4dot

Nebula.NET 1.1 añade virtualización de código, protección de Blazor WebAssembly y un endurecimiento creado específicamente para derrotar a los desofuscadores automáticos como de4dot.

Nebula.NET 1.1 es nuestra versión anti-ingeniería-inversa. Añade la protección más fuerte que ofrecemos — la virtualización de código — una forma dedicada de proteger aplicaciones Blazor WebAssembly, y un conjunto de cambios de endurecimiento dirigidos directamente a los desofuscadores automáticos que los atacantes usan primero.

Virtualización de código (Enterprise)

El renombrado y el aplanado del flujo de control hacen que el código sea difícil de leer. La virtualización hace que no esté ahí. Nebula compila tus métodos más sensibles a un bytecode personalizado ejecutado por una pequeña VM embebida, y reemplaza el cuerpo del método por un stub que lo ejecuta. Un decompilador ya no muestra tu lógica, solo una llamada a la VM:

public static int Validate(string key)
{
    return VirtualMachine.Run(typeof(LicenseCheck).TypeHandle, 100663302, /* … */);
}

Para recuperar el método, un atacante primero tiene que aplicar ingeniería inversa a la VM en sí — un orden de esfuerzo completamente distinto al de leer IL aplanado. Es ideal para comprobaciones de licencia, derivación de claves y algoritmos propietarios, y, como el runtime apunta a .NET Standard 2.0, funciona en todos los destinos de .NET, incluido .NET Framework. Consulta la guía de virtualización.

Protección de Blazor WebAssembly

Blazor WASM descarga tus ensamblados reales al navegador, lo que lo convierte en el destino de .NET más expuesto — y uno que la mayoría de los ofuscadores ignora, porque no puedes simplemente ofuscar las DLL: Blazor comprueba cada una contra un manifiesto de integridad SHA-256 y se niega a cargar una que no coincida.

El nuevo comando nebula blazor lo gestiona de principio a fin — ofusca una aplicación publicada y repara blazor.boot.json más las copias precomprimidas .br/.gz, de modo que la aplicación protegida sigue cargando:

dotnet publish -c Release -o publish
nebula blazor --framework publish/wwwroot/_framework --config nebula.config.json

Los detalles están en Proteger Blazor WebAssembly.

Creado para vencer a de4dot

El primer movimiento de un atacante con conocimientos es ejecutar un desofuscador automático como de4dot para eliminar la protección con un solo clic. Nebula 1.1 apunta a las técnicas concretas que usan esas herramientas:

  • Un flujo de control que no se puede plegar por constantes — el estado de despacho se enmascara con una clave calculada en tiempo de ejecución, así que no hay nada que plegar y reconstruir estáticamente.
  • Cifrado de cadenas que no se puede eliminar automáticamente — una clave por sitio de llamada significa que el descifrador no es la firma que de4dot detecta automáticamente, y ninguna llamada individual reproduce una cadena.
  • Un grafo de llamadas oculto — la ofuscación de referencias (llamadas por proxy) enruta las llamadas a través de proxies sin marca para que las herramientas no puedan ver qué estás llamando.
  • Nada de IL — los métodos virtualizados no tienen nada que un desofuscador pueda limpiar.

No nos creas sin más: ofusca una compilación, pásala por de4dot y abre el resultado en nuestro decompilador gratuito Glass.NET. El flujo de control sigue aplanado, las cadenas siguen cifradas, los métodos virtualizados siguen siendo solo una llamada a la VM. Más información en Resistir la desofuscación automática.

También en la 1.1

  • requireLicensedEdition hace fallar la compilación en lugar de degradarla en silencio si la licencia no puede aplicar la protección solicitada — y la ruta de compilación vuelve a verificar su lease en línea, de modo que una licencia revocada se detecta.
  • Nebula.Runtime ahora apunta a .NET Standard 2.0, por lo que la virtualización funciona en todas partes.

Nebula.NET 1.1 es una actualización de prueba gratuita para los usuarios existentes. Descárgala, o consulta la lista completa de funciones y las ediciones.

Prueba Nebula.NET

Endurece tu código .NET en minutos — empieza con la edición gratuita.