Skip to Content
Nouvelle version 12 disponible 🎉
ObfuscatorChiffrement du codeFichier chiffré externe

Fonctionnalité sous forme de fichier chiffré externe

Cet exemple livre une fonctionnalité premium sous la forme de code chiffré distribué séparément de l’application, déverrouillé uniquement lorsque le client dispose aussi d’une licence qui l’accorde. Babel Obfuscator peut extraire le corps chiffré d’une méthode vers un fichier .eil externe au lieu de l’incorporer. À l’exécution, la machine virtuelle Babel demande à l’application ce fichier (get stream) et son mot de passe (get password). Cet exemple conditionne les deux hooks à une licence Babel Licensing valide : déverrouiller la fonctionnalité premium exige donc deux choses à la fois, le fichier premium.eil déployé à côté de l’application et une licence signée, liée à la machine, qui accorde la fonctionnalité.

Pour utiliser cet exemple, vous avez besoin d’une licence de site pour Babel Obfuscator (édition Ultimate, Server ou Data Center) et de Babel Licensing. Le code source est disponible sur GitHub :

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

Comme source est défini pour la fonctionnalité mais pas internal, Babel écrit le corps chiffré dans premium.eil au lieu de l’incorporer :

[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)

Le projet copie premium.eil du dossier intermédiaire du build vers la sortie au moyen d’une petite cible MSBuild AfterTargets="Build", afin qu’il puisse être déployé, ou délibérément retenu pour vendre la fonctionnalité à part.

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

Voir Fichiers de code externes dans le manuel du chiffrement du code pour en savoir plus sur le mécanisme .eil.

Last updated on