Spices.Fortress
Spices.Fortress is a protection tool (not an obfuscator) for C# 2.0 Windows Forms applications.
The goal of
Spices.Fortress is to protect C# applications from unauthorized use by limiting the functionality of evaluation or trial versions. Applications protected by
Spices.Fortress work as evaluation versions, but as soon as they are unlocked with a secure Fortress Key, they start operating as fully functional versions.
Spices.Fortress does not protect .NET class libraries, but Windows Forms applications only.
Spices.Fortress advantages
-
protection of .NET applications,
not their
obfuscation;
-
protection of the
data needed to run the application,
not the
code itself;
- use of only
native (but characteristic of C#)
means;
- the protected executable is
natively compiled by C# (hence no compatibility problems);
-
no external processing of C#-produced protected executables;
- the
Key is not checked but is used to restore the protected functionality;
-
each Key contains personal data, therefore each Key may be easily identified.
Overview
Traditional protection technique implies use of some checking routines to control execution of the protected parts of the application. Spices.Fortress uses another approach to the problem of protection of C# applications. It protects not code, but data needed to run the application. In .NET Windows Forms applications data is a link between events and event handlers. The difference between the trial and the registered versions is based on the use of different event handlers for trial and registered versions of the protected application. The trial version uses one set of event handlers, whereas the registered version uses another one.
When protecting applications, Spices.Fortress uses only native C# means, i.e. no external processing of C#-produced executables takes place.
Spices.Fortress protects the forms of C# projects on the source level, which means that Spices.Fortress temporarily modifies the source code and then, after recompilation, the application is protected.
When applied, Spices.Fortress modifies the source code of the form in such a manner that after re-compiling each event protected by Spices.Fortress has no event handler assigned. When a protected application is started, the trial event handlers are assigned to corresponding events. If a valid Fortress Key is found, registered event handlers replace the trial ones. The protected application does not use any checking routines to choose which set of event handlers to use. Instead, it uses the data contained in the Fortress Resource and the Fortress Key to assign registered event handlers to corresponding events.
To be protected by Spices.Fortress, a C# form must contain components that have events with assigned event handlers.
Future versions of Spices.Fortress will also support VB.NET projects.