Skip to Content
Neue Version 12 verfügbar 🎉
ObfuscatorCodeverschlüsselungExterne verschlüsselte Datei

Funktion als externe verschlüsselte Datei

Dieses Beispiel stellt eine Premium-Funktion als verschlüsselten Code bereit, der getrennt von der Anwendung ausgeliefert wird. Er wird nur freigeschaltet, wenn der Kunde auch eine Lizenz hat, die die Funktion gewährt. Babel Obfuscator kann den verschlüsselten Rumpf einer Methode in eine externe .eil-Datei auslagern, statt ihn einzubetten. Zur Laufzeit fragt die Babel Virtual Machine die Anwendung nach dieser Datei (get stream) und nach ihrem Passwort (get password). Dieses Beispiel bindet beide Hooks an eine gültige Lizenz von Babel Licensing. Um die Premium-Funktion freizuschalten, braucht es also zwei Dinge zugleich: die Datei premium.eil, die neben der Anwendung bereitgestellt wird, und eine signierte, hardwaregebundene Lizenz, die die Funktion gewährt.

Für dieses Beispiel brauchen Sie eine Standortlizenz für Babel Obfuscator (Edition Ultimate, Server oder Data Center) und Babel Licensing. Der Quellcode ist auf GitHub verfügbar:

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

Weil in der Angabe der Funktion source gesetzt ist, internal aber nicht, schreibt Babel den verschlüsselten Rumpf in premium.eil, statt ihn einzubetten:

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

Das Projekt kopiert premium.eil mit einem kleinen MSBuild-Ziel AfterTargets="Build" aus dem Zwischenordner des Builds in die Ausgabe. So kann die Datei bereitgestellt oder bewusst zurückgehalten werden, um die Funktion getrennt zu verkaufen.

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

Mehr zum .eil-Mechanismus finden Sie unter Externe Codedateien im Handbuch zur Codeverschlüsselung.

Last updated on