Skip to Content
Nueva versión 12 disponible 🎉
ObfuscatorCifrado de códigoArchivo externo cifrado

Función como archivo externo cifrado

Este ejemplo entrega una función premium como código cifrado que se distribuye separado de la aplicación y que solo se desbloquea cuando el cliente tiene además una licencia que la concede. Babel Obfuscator puede extraer el cuerpo cifrado de un método a un archivo .eil externo en lugar de incrustarlo. En tiempo de ejecución, la máquina virtual de Babel pide a la aplicación ese archivo (get stream) y su contraseña (get password). Este ejemplo condiciona ambos hooks a una licencia válida de Babel Licensing, de modo que desbloquear la función premium requiere dos cosas a la vez: el archivo premium.eil desplegado junto a la aplicación y una licencia firmada y vinculada al hardware que conceda la función.

Para usar este ejemplo necesita una licencia de sitio de Babel Obfuscator (ediciones Ultimate, Server o Data Center) y Babel Licensing. El código fuente está disponible en GitHub:

git clone https://github.com/babelfornet/external-encrypted-code-console-example.git

Como en la función está definido source pero no internal, Babel emite el cuerpo cifrado en premium.eil en lugar de incrustarlo:

[Obfuscation(Feature = "msil encryption:source=premium;password=...")] // no internal -> external .eil public string Analyze(string data) { /* premium body, stripped to premium.eil */ } [Obfuscation(Feature = "msil encryption get stream")] // returns the premium.eil stream (license-gated) [Obfuscation(Feature = "msil encryption get password")] // returns the password (license-gated)

El proyecto copia premium.eil de la carpeta intermedia de la compilación a la salida con un pequeño destino de MSBuild AfterTargets="Build", de modo que se puede desplegar, o bien retener deliberadamente para vender la función por separado.

Standard license, no premium.eil -> Premium blocked Premium license, no premium.eil -> Premium blocked (feature not delivered) Standard license, premium.eil -> Premium blocked (not licensed) Premium license + premium.eil -> Premium analysis runs

Consulte Archivos de código externos en el manual de Cifrado de código para obtener más información sobre el mecanismo .eil.

Last updated on