PHS Dotfuscryptor – Features

PHS Dotfuscryptor – Features

Der PHS Dotfuscryptor bietet eine Reihe von verschiedenen Funktionen und Schutzmechanismen, die auf ein bestehendes .NET Assembly angewendet werden können.

.NET Assembly Protection

Das Assembly wird gegen Disassemblierung geschützt. Im Gegensatz zu anderen gängigen Tools verwendet der PHS Dotfuscryptor dabei einen innovativen Ansatz basierend auf starker Kryptographie (→ Details). Dieser Ansatz verzichtet gänzlich auf eine Abänderung der Assembly Metadaten und des .NET CIL Codes. Das Assembly wird geschützt und kann von weit verbreiteten .NET Disassemblern und Reflector-Tools nicht disassembliert werden, bleibt dabei an sich aber unverändert.

.NET Assembly Packaging

Moderne .NET Applikationen bestehen zum einem aus einem Startup-Assembly (.exe) und zum anderen aus zusätzlichen Reference-Assemblies, die in Form von DLLs vorliegen und zur Laufzeit on-demand in den das Startup-Assembly ausführenden Prozess geladen werden. Der PHS Dotfuscryptor ermöglicht es, auch diese Reference-Assemblies in den Native Dotfuscryptor Launcher einzubetten. Der Vorteil davon besteht zum einen darin, dass Startup- und Reference-Assemblies auf konsistente Art und Weise geschützt werden, ohne dass beim Erzeugen der Reference-Assemblies auf spezielle Einschränkungen Rücksicht genommen werden muss (ObfuscationAttribute oder Vergleichbares). Zum anderen wird so das Deployment der .NET Applikation wesentlich vereinfacht, da alle benötigten Assemblies in Form einer einzigen Datei (.exe), die (ähnlich wie bei einer statisch gelinkten nativen Anwendung) sowohl das Startup- als auch alle Reference-Assemblies enthält, verteilt werden können.

Debugger Protection

Zusätzlich zum Schutz vor Disassemblierung, bietet der PHS Dotfuscryptor die Möglichkeit, das .NET Assembly bzw. genaugenommen den Prozess, der es auf dem Zielsystem ausführt, auch vor externem Debuggen zu schützen. Zu diesem Zweck kommen verschiedene Technologien zum Einsatz, die den Prozess von anderen Prozessen im System abschotten und so verhindern, dass mithilfe eines Debuggers interne Informationen ausgelesen oder der Programmablauf manipuliert werden können.

Password Binding

PHS Dotfuscryptor bietet eine einfache und generische Möglichkeit, die Ausführung eines .NET Assemblies an ein Passwort zu binden. Dieses Passwort muss vom Anwender beim Start Programms eingegeben werden. Ist ihm das Passwort nicht bekannt, so ist es nahezu unmöglich, die Applikation zu starten oder zu disassemblieren. Wie alle anderen von PHS Dotfuscryptor unterstützten Schutzmechanismen, kann auch das Passwort Binding einfach und unabhängig in bereits bestehende .NET Anwendungen integriert werden. Die dadurch erreichte Trennung von Anwedungslogik und Schutzmechanismus gewährleistet ein Höchstmaß an Sicherheit.

USB Copy Protection

Die Ausführung des geschützten Assemblies kann an einen Kopierschutzstecker (USB Dongle) gebunden werden. Fehlt auf dem Zielsystem der USB Dongle, so besteht keine Möglichkeit die Applikation zu starten. Auf diese Weise wird sichergestellt, dass Ihre Software nicht unrechtmäßig vervielfältigt und weitergegeben werden kann. Da der USB Dongle integraler Bestandteil der Native Launcher Runtime ist, ist eine Umgehung des Kopierschutzes und damit eine unauthorisierte Vervielfältigung Ihrer Software sehr schwierig.

Hardware Binding

Neben dem Kopierschutz basierend auf dem USB Dongle bietet Ihnen der PHS Dotfuscryptor auch die Möglichkeit, Ihre .NET Applikation durch Binden an eine spezielle MAC Adresse vor unerlaubter Vervielfältigung und Weitergabe zu schützen. Ähnlich wie der Schutz mittels USB Dongle, ist auch beim Binden an die MAC Adresse die Überprüfung der Hardwarekonfiguration ein integraler Bestandteil des Native Dotfuscryptor Launchers und erlaubt es Ihnen, Ihre .NET Anwendung sehr zuverlässig zu schützen.

Trial Versioning

Mithilfe des Trial Versionings ist es Ihnen möglich, Trial Versionen Ihrer eigenen .NET Software basierend auf dem PHS Dotfuscryptor zu erstellen. Nach der von Ihnen beim Erstellen des Binaries festgelegten Anzahl an Tagen lässt sich die geschützte Anwendung nicht mehr starten. Auch bei diesem Schutzmechansmus wird eine Entkopplung von Sicherheitsmechanismus und eigentlicher Anwendungslogik und damit ein zuverlässiger und flexibel nachrüstbarer Schutz erreicht.

Signature Check

Zwar unterstützt Windows grundsätzlich den Schutz von Executables mithilfe des Authenticode-Verfahrens, überprüft die vorhandenen Signaturen standardmäßig bei Programmstart jedoch nicht. So bleibt eine an sich erkennbare, beispielsweise auf dem Transportweg zwischen Ihrem Distributionsserver und dem Clientcomputer vorgenommene, böswillige Programmmodifikation ohne Folgen. Genau diese Lücke wird durch PHS Dotfuscryptor geschlossen, indem die geschützte Native Launcher Runtime automatisch die Gültigkeit der vorhandnen digitalen Signaturen überprüft und den Startvorgang der .NET Applikation im Fehlerfall (z.B. zum Signieren verwendetes Zertifikat ist nicht vertrauenswürdig oder Binary wurde nachträglich verändert) abbricht.

Debugging Console

In der Vollversion bietet der PHS Dotfuscryptor die Möglichkeit, von der Native Dotfuscryptor Runtime für Ihre Applikation eine optionale Debugging Console einblenden zu lassen. Diese Debugging Console zeigt detaillierte Informationen über unbehandelte Exceptions und ermöglichet es Ihnen, auch in Release Builds wertvolle Informationen über Programmabstürze zu gewinnen.

Distribution Management

Zur Verwaltung der verschiedenen Distributionen, die sich aus den oben angeführten Features und deren Kombinationen ergeben, bietet der PHS Dotfuscryptor ein Distributions Management. Beispielsweise ist es denkbar, ein und dasselbe Softwareprodukt an verschiedene Kunden zu verkaufen und zusätzlich ein internes Release für Kundendemonstrationen zu führen. Für Kunden könnte die Applikation an einen USB Dongle gebunden sein, während es für Kundendemonstrationen wichtig ist, dass auf dem Zielsystem, das eines des potentiellen Kunden sein könnte, alle benötigten Reference-Assemblies vorhanden sind. Zu diesem Zweck könnten im PHS Dotfuscryptor zwei verschiedene Distributions geführt werden. Außerdem könnten über das Distribution Management beispielsweise auch verschiedene Bundles für Hardware Binding an unterschiedliche MAC Adressen verwaltet werden.

Kernel Protection (Coming Soon)

Zusätzlich zum Schutz vor Debuggern, wird der Prozess, der das .NET Assembly hostet, durch eine spezielle Kernel Softwarekomponente geschützt. Diese Softwarekomponente stellt sicher, dass kein unauthorisierter Zugriff auf den Adressraum des .NET Prozesses erfolgen.

Details ← → Screenshots