 |
Introduction |
 |
Graphical User Interface |
 |
GUI Elements |
 |
Licensing System |
 |
SDK |
 |
Definitions |
 |
Tools |
 |
Testing |
 |
Examples |
 |
Ordering |
 |
Support and Contact |
|
 |
 |
 |
The Main Panel
The main panel consists of 5 pages. Each page is
designed to accomplish a special range of tasks and setups.
Assemblies

In the Assemblies page you can specify several assemblies as well
as the destination path of the IntelliLock output. The first
assembly in the assembly list is the main one. If you define more
than one assembly you can choose to merge them or lock/protect them
separately. With the button "Properties" you can setup strong name
or digital certificate settings for each assembly separately.
Lock Settings

Using a variety of evaluation locks, IntelliLock
gives you the ability to control use of your assembly in a variety
of ways - trial versions, software rental, custom locks, software
as a service - all are possible using IntelliLock locks, and all
without any modifications to your source code. We recommend that
you spend some time to understand these license enforcement options
as the time you invest in doing so will be time well spent.
In the Lock Settings page you specify the
licensing controls you want IntelliLock to build into your assembly
when you protect it. These locks are implemented by additional code
which IntelliLock includes in the protected assembly and requires
no changes to your assembly source code to implement. One of the
powerful features of IntelliLock licensing is that the settings you
inbuild into your assembly can be overridden by providing a license
file to your customer, meaning you do not need to supply a separate
licensed version of your program - the trial version and full
version are exactly the same, the only difference being the license
file you provide to paying customers.
- Expiration Days - Your application will work for
the specified number of days from the date of first installation on
a computer.
- Expiration Date - The Expiration Date lock allows
you to specify the exact date on which your assembly should expire.
This is useful for example for beta test versions and for software
rental (where you can specify the expiration date as the day
following the last date the customer has paid for the use of your
software).
- Executions - This lock, if enabled, causes your
application to expire after the specified number of
executions.
- Runtime - The user can run the assembly for an
unlimited number of days, but the apllication will shut down each
time it is run, after the specified number of minutes.
- Global Time - This option set an exact amount of
total minutes that your assembly can stay in memory.
- Instances - This lock, if enabled, allows you to
specify the maximum number of copies of your application the user
is allowed to run at the same time. Please note that exceeding the
specified number of instances does NOT cause your application to
expire.
- Custom - This lock, if enabled, enables trial
mode without using the locks above. This is really helpful if you
want to use your own trial restrictions. To determine the current
license status please use the InteliLock SDK.
- Expiration Behavior All
-
- When enabled causes the expiration of the
assembly only when all other enabled locks have expired.
- When disabled the assembly expires when any one
of the locks expires. This is a very powerful option, enabling you
to (for example) implement a trial period which is either 30 days
or 50 uses. It is worth spending a little time considering the
flexibility which this option offers.
- Run Without License File - Set to false to
require a valid license for operation. If true, enabled Inbuild
Locks are honored. If a valid license file is found the Locks
settings are overridden with the license file settings. To use this
option at least one trial lock or the custom lock must be
enabled.
- Shut Down Process After Expiration - Terminates
the running process upon expiration.
- Search In Embedded Resources - Enable this option
to search for license files in the embedded resources of calling
assemblies.
- Search On HDD - Enable this option to search for
license files in the location of your locked assembly. If you want
to load a license directly please use the IntelliLock SDK.
- Dialog - Here you can specify various dialogs
which are shown depending on the license status. The number of
possible dialog boxes may seem large, and you may worry that your
customer will see numerous dialog boxes when the locks expire. This
is not the case, the IntelliLock licensing system will only ever
display one dialog to your user. IntelliLock determines which the
most important dialog is and displays that one only. Nag Screen -
We are all familiar with nag screens in applications, reminding us
to purchase the product before the trial period expires. This
option allows you to specify whether to display a nag screen to
your user, again without any modification to the source code of
your assembly.
- Run Another Process After Expiration - Opens or
launches another application, file, or web site upon expiration.
Usually used to send evaluation users to a web page.
- License Name - Specifies a license file name or
extension (*.myextension). To avoid conflicts with optional methods
of extending license behavior, binary IntelliLock licenses do not
use the .LIC extension reserved to .NET license classes.
- Master Key - To create valid license files, the same
master key must be used for license creation as was used to produce
IntelliLock locked output. This master key is generated when you
create your project, which must be saved to preserve the original
key. Never hand out the Master Key to anybody!
License Generator

The IntelliLock license system allows you to distribute your
assembly without a license file
provided that you have set "Run Without Valid License" to True.
When your customer purchases a license, you use the License
Generator or the SDK to build a license file to unlock your
assembly. Lock settings in a license file always override settings
which are stored in the assembly.
To create a valid license file, the same master key must be used
for license creation as was used to lock your assembly. This master
key is generated when you create your project, which must be saved
to preserve the original key, otherwise you will be unable to
generate valid license files.
- Hardware Lock License - This option allows you to
create licenses which can be used only on a particular PC, based on
a Hardware ID which identifies the particular combination of
hardware in that PC. License Files which have the Hardware disabled
can be used on any PC. Utilising the Hardware Lock prevents your
customer from purchasing one license file and using it on multiple
PCs. To create licenses which are locked to the hardware of a
particular PC, you must enable "Hardware Lock" and provide
the Hardware ID of the client's PC. Please use the SDK
function to display the Hardware ID from within your assembly (for
example in the "About" dialog box).
- Tolerance Level - The tolerance level represents
the number of hardware components allowed to be changed before the
Hardware ID is recognized as invalid by your locked assembly.
- Apply Trial Restrictions To License File - To
Limit usage of a license file you can apply the current lock
settings to the license file itseft. Use it to extend trial
periods, accomplish subscription/time based license expiration
etc...
- Require License Server Validation - If you want
to validate a license file via server first before it is recognized
as a valid license file, you can set the address to the
corresponding web service here. Use the Menu/Bar item "License
Management"->"ASP.NET Management/Activation" to create the
corresponding service.
- License Information - You can add custom license
information to the license file. Custom license information allows
a flexible license shema, modular licensing etc.. Your assembly can
access this information with the functions available in the
SDK libraries. Use the right mouse button to add assembly attribute
information. Your locked assembly automatically compares this
special information with the attributes of the calling assemblies.
Only an assembly with matching attributes is allowed to access your
locked assembly.
Protection Settings

The Protection Settings page allows you to enable a various of
protection options.
- Obfuscation - IntelliLock provides thorough
class, type, and variable obfuscation. Obfuscation is the process
of making your source code more difficult (but not impossible) for
humans to understand. Obfuscation works by replacing the meaningful
names you assign to classes, methods, properties and variables with
meaningless ones. For example, it may replace a variable name of
"counter" with "A4DF3CV89G" - to humans these obfuscated names are
confusing and difficult to remember, but have no effect on the .NET
Framework interpreter.
- Use Unprintable Characters - Uses unprintable strings to
obfuscate type and member names, but cannot be used if your
assembly must run as safe code.
- Generate Short Strings - Enable this option to generate short
strings for your obfuscated class and member names. This can reduce
the file size.
- Incremental Obfuscation - If you want IntelliLock always to
generate the same obfuscation strings for type and member names,
you need to enable this option.
- Create Mapping File - Creates a file which cross reference
unobfuscated names with obfuscated ones, which is used
by the Stack Trace Deobfuscator.
- Exclusions - If you want to prevent specific kind of types or
members from obfuscation, you can enable the corresponding option
here. Please note, IntelliLock offer declarative obfuscation as
well.
- Inclusions - If you want to obfuscate all types or members
(including public one), you need to enable to corresponding option
here.
- String Encryption - Disguises internalized text.
This encryption makes it much more difficult for a hacker to
attempt a code patch of your assembly, as he will be unable to
identify the text of messages or other useful strings, making
it much more difficult to identify where to patch your
code.
- Code Patch Protection - Enable this option to
prevent your source code from being tampered by hacker tools.
- Suppress ILDASM - Enable this option to suppress
disassembly to IL using the ILDASM.exe tool.
- Strong Name Removal Protection - This option
prevents your protected assembly from being tampered by hacker
tools.
- Encrypt IL Code - Enable this option to encrypt
the source code of your methods. At runtime the source code will be
decrypted in memory.
- Inject Invalid Metadata - Injects invalid
metadata. Most tools are unable to read assemblies with invalid
metadata. Of course, your assembly remains fully functional to the
.NET runtime.
- Control Flow Obfuscation - Mangles program flow,
making it extremely difficult for human eyes to follow the program
logic. Level 9 represents strongest control flow obfuscation.
Finalization

The Finalization page shows you the current lock/protection
progress while IntelliLock processes your assemblies.
© Copyright 2008 EZIRIZ
|