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.gitComo 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 runsConsulte Archivos de código externos en el manual
de Cifrado de código para obtener más información sobre el mecanismo .eil.