Funzionalità come file cifrato esterno
Questo esempio distribuisce una funzionalità premium come codice cifrato fornito separatamente
dall’applicazione, sbloccato solo quando il cliente ha anche una licenza che la concede. Babel
Obfuscator può estrarre il corpo cifrato di un metodo in un file .eil esterno invece di incorporarlo.
In fase di esecuzione la Babel Virtual Machine chiede all’applicazione quel file (get stream) e la
relativa password (get password). Questo esempio subordina entrambi gli hook a una licenza
Babel Licensing valida, quindi per sbloccare la funzionalità premium servono due cose insieme: il
file premium.eil distribuito accanto all’app e una licenza firmata e vincolata al computer che
concede la funzionalità .
Per usare questo esempio ti servono una licenza per sede di Babel Obfuscator (edizioni Ultimate, Server o Data Center) e Babel Licensing. Il codice sorgente è disponibile su GitHub:
git clone https://github.com/babelfornet/external-encrypted-code-console-example.gitPoiché per la funzionalità source è impostato ma internal no, Babel scrive il corpo cifrato in
premium.eil invece di incorporarlo:
[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)Il progetto copia premium.eil dalla cartella intermedia della build alla cartella di output con un
piccolo target MSBuild AfterTargets="Build", così il file può essere distribuito, oppure trattenuto
di proposito per vendere la funzionalità separatamente.
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 runsVedi File di codice esterni nel manuale della
cifratura del codice per saperne di più sul meccanismo .eil.