1.     Security

I see that in the registry in plain text. If the user deletes the entry for the application that is being protected, does RedRegistration think it is a fresh installation and start again?

How do I create an automatic 30 Day trial period?

How can I increase the security of RedRegistration

Does RedRegistration catch users that advance the computer's clock when they install and then turn back the clock to get extra time?

Where is the registration information stored on the customer's system?

2.     Implementation

Does the NumberUsers property restrict many users from the same company using a single license?

Does the Rights property enable us to turn on/off specific features for specific customers with a software key?

3.     Is RedRegistration Y2K compliant?

4.     Licensing

Are there any restrictions in using RedRegistration in a commercial software package?

5.     Trouble Shooting

I am having trouble compiling my Access application into an MDE file. The cause is the RedRegistration control on one of my forms.

1.    Security

I see that in the registry in plain text. If the user deletes the entry for the application that is being protected, does RedRegistration think it is a fresh installation and start again?

If the user information is not found when a call to LoadRegistration is made, then LoadRegistration returns FALSE, and registered returns FALSE.  The determination of a fresh installation would depend on your implementation of it. 

How do I create an automatic 30 Day trial period?

On installation, run a routine that automatically creates a demo registration code and adds it to the user's registry.  Now when the program is loaded, LoadRegistration will return TRUE, and will be in the demo mode.

 

Creation of this code can be either one, or both of the following

restraints.

 

1)                   Expiration Date, which can be computed in the following manners:

a)                   Date of the file (setup.exe) + 30 days

b)                   machine date + 30 days

c)                   modified date on the user's registry (user.dat, system.dat) + 30 days, etc.

2)                   Number Uses:    A fixed number of times allowed to run.

 

As a further safety measure, I would recommend writing to the registry, or to a file buried in the system directory, a stamp. This stamp would indicate that a successive installation of your application should not create a registration code automatically.  This way if the user deletes the registry information, and/or reinstalls, no additional codes will be created.

 

Now if you ever get a FALSE from the methods LoadRegistration or Registered, then display a nag screen, stating that they program will not run. Give them an opportunity to enter a registration code.  Unless they register, it will not run.

How can I increase the security of RedRegistration.

The biggest problem is that an expert user will be able to find these values, and after learning the process may be able to make changes.  An even larger threat are hackers that will figure out the storage mechanism, and then post ways around it. 

 

In order to increase the security of your program, I would recommend shadowing all of the restriction elements: ExpirationDate, NumberRunTimes, NumberRunTimesSpent, and NumberUsers. These key elements are stored in an encrypted state in the registry.   If these values are hidden by the developer, then there can be no generic crack for RedRegistration, as each developer will implement their shadowing differently.  If you compare your shadowed value to one that RedRegistration returns, and get a different number, then it should be considered unregistered.

Does RedRegistration catch users that advance the computer's clock when they install and then turn back the clock to get extra time?

The expiration date is a hard set date encrypted in the RegistrationCode. If your registration code contains the expiration date 05/01/1999, and you install the registration code with your date set at 05/09/1999, then RedRegistration will tell you that your registration is invalid, due to expired date.  NOW: If you set your date back, when it comes to 05/09/1998, then RedRegistration will continue to think that it is valid, and will return registered. 

 

The Number of Runtimes is available to limit further, and a combination could be used. Ex: Expires 05/09/1999 or after 300 uses.

 

Now it is possible to defeat the Number of uses, but it is more difficult.

Where is the registration information stored on the customer's system?

If you use the "SaveRegistration" method to save it, then it is stored in the registry, under the key :"HKLM\Software\RJ Designs\RedRegistration\KeyName"  where KeyName is the name you specified in the save method.

 

You are free to implement your own method of saving. Save/Load Registration methods are quick & simple but not necessary.

2.    Implementation

Does the NumberUsers property restrict many users from the same company using a single license?

This is a way of returning the number of users allowed.  The implementation would still have to be done, this is just a secure way of setting the value.

Example: Our Point-of-Sale program is valid for 1-100 users, with 5 user increments. It is the same source. I test the value of the property NumberUsers on initialization, then add an active session to the database. If the number of current sessions is greater than the NumberUsers, then I display a dialog box that says that the "Number of workstations has exceed your license.", then exits.

 

Otherwise the program continues.

 

This would not prevent multiple uses, unless you maintain an active user's session in some method. The most common is a common database.

Does the Rights property enable us to turn on/off specific features for specific customers with a software key?

Yes, but it would require your programming.  The rights property is extremely useful, since it allows 254 characters.

 

For Example, Consider the CALC demo.

 

Rights for standard calc would be:                 CALC

Rights for Scientific calc would be:                CALCSCI

Rights for Accounting Calc would be:            CALCACT

 

Now you need to test Registered 3 times, in a loop by setting the RIGHTS prop to each of the 3 possibilities. If any are a success, then you know what rights to enable/disable.  A user upgrading needs just a new REGCODE, and the new features are enabled.

 

3.    Is RedRegistration Y2K compliant?

Yes. Note: Since there are no runtime requirements, RedRegistration is not affected by the MFC42??.dll Y2k error that is still out there.

4.    Licensing

Are there any restrictions in using RedRegistration in a commercial software package?

No restrictions. Once a developer registers RedRegistration, they will receive their unique registration code. This 1 code can be used as many times (provided that it is in conjunction with the developers project. Ex: Can not be given out to other parties, that would be a violation of the license), and in as many products. These products are expected to be commercial products, since this would prevent these commercial products from being "SHARED", "STOLEN", etc.

5.    Trouble Shooting

I am having trouble compiling my Access application into an MDE file. The cause is the RedRegistration control on one of my forms.

The main reason is that Access 97 does not fully support ActiveX controls. It has a very limited subset. I would recommend using the reference method. To do this, click on tools, reference and check off RedRegistration v2.0.

See the help file under Overview->Using in Microsoft Visual Basic -
Reference method for further information on this.


© Copyright 1998-2005 RedBaron Consulting, LLC.
RedBaron Consulting, LLC.
Purchase RedRegistration
P.O. Box 335
RedRegistration Home Page 
Keene, TX 76059
RedRegistration FAQ
What's New