|
What are Registration keys (RegKeys) ?
RegKeys are pieces of code with an especial format. All registrations will be done just through these RegKeys.
There are two kinds of RegKeys: Regular and Generic keys. All with the format
XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX (four segments of seven chars each),
Regular keys:
This kind of keys require a different key for each user/computer. These Keys are machine dependent for the InstallCode based lock strategy and UserName dependent for the UserName based lock strategy.
You can chose between two lock strategies, namely:
InstallCode based: The lock protection is based in a special code called InstallCode calculated from some specific values from the machine. This value is displayed on the registration form and when the user decide to register your application, then he must send you this value in order to calculate the registration keys.

The InstallCodeSources property establish from where will be calculated the InstallCode value, can take these values: BIOS_SN, CPU_ID, HD_SN and Random_Number.
The InstallCode value is embedded into the RegKey, then, when the program runs, this value is compared with the similar one calculated from the machine at run time. If these codes matches then the application starts, otherwise the user is prompted to register. This method together with the tmNone value for the TrialMode property provide you a high security level.
UserName based: The lock protection is based in a special code calculated from the UserName and stored into the local registry. Each time the program runs, This special code is compared with a similar value stored into the RegKey.
This method is less secure than the InstallCode based, however, this give you a reasonable level of security against common users intrusions. The better way is with GetLocalTrial=True and TrialMode=tmNone. You may optionally to use tmRelative or tmAbsolute but insofar as possible don't use GetLocalTrial=False with UserName based Keys.
When the user run the application the first time this is prompted to enter his user name then the UserCode is calculated from this name and stored into the local registry. In the other hand, when you calculate the registration keys for this user, an UserCode is calculated from the user name entered into the user data in the AVLockManager utility. This UserCode is embedded into the calculated registration keys.

When the user register the application this is prompted to enter again your user name, if the UserCode calculated from this name match with the one embedded into the entered registration key then the registration process continues and the registration key with the embeded UserCode is stored into the registration data, otherwise this process is aborted.
After registration when the program runs, the UserCode stored into the registry is compared with the similar one stored into the registration data. If these codes matches then the application starts, otherwise the user is prompted to register.
Generic keys:
These keys was intended to register apps for several users with only one RegKey avoiding the tedious task to generate a different Regkey for each one. These keys only compares the AppID into the exe file with the existent one into the RegKey which the user is trying to register, and eventually this can check too the VersionId number. More insecure than regular keys but much more efficient.
|