Skip to Content
Nuova versione 12 disponibile 🎉
ObfuscatorCifratura del codiceLicenza in abbonamento

Licenza in abbonamento con codice Pro cifrato

Questo esempio mostra una licenza a tempo (in abbonamento) con un periodo di tolleranza, in cui le funzionalità riservate all’abbonamento sono protette con la cifratura del codice MSIL di Babel Obfuscator. Il codice Pro può essere eseguito solo finché l’abbonamento, compreso il periodo di tolleranza, è valido, perché la Babel Virtual Machine ottiene la password di decifratura dalla licenza stessa. Quando l’abbonamento è scaduto oltre il periodo di tolleranza la licenza non supera più la convalida, quindi il codice Pro cifrato smette di funzionare.

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/subscription-license-console-example.git

La licenza contiene due date: una ExpireDate applicata dal motore, impostata sulla fine del periodo di tolleranza (il limite definitivo), e un campo subscription-end, non vincolante, che indica quando va fatto il rinnovo. Tra queste due date l’app continua a funzionare ma ricorda all’utente di rinnovare; dopo il limite definitivo la licenza non supera più la convalida e il codice Pro cifrato resta bloccato.

Active -> Pro forecast runs Grace (lapsed) -> Pro forecast runs + "please renew" warning Expired (>grace) -> Pro forecast locked (BVM cannot decrypt it)

Il metodo Pro è cifrato e ottiene la password dalla licenza attraverso un hook get password:

[Obfuscation(Feature = "msil encryption:internal=true;source=pro;password=...")] public static double Forecast(double[] history) { /* protected body */ }

Un progetto complementare, LicenseGenerator, emette le licenze in abbonamento (--days, --grace, --expired), così puoi provare ogni stato. Poiché la protezione è crittografica, estendere l’abbonamento modificando con una patch un controllo sulla data non serve: senza una licenza valida non c’è password, e il codice Pro non può essere decifrato.

Last updated on