Application Security Testing: An Integral Part of DevOps
Environment: VC++ 6.0, W2000
RegDialog is the MFC-based dialog that will help you to manage shareware applications' registration.
After the trial period is finished, the user can only enter the registration code and after the shareware application is registered, RegDialog will no longer appear. Of course, the user can register the application during the trial period, also. Reinstalling the shareware application will not "help" because the information about the starting date is left in the Registry and the "new" application will just continue to count the trial period days. The first time the user starts the shareware application, RegDialog will not appear; that is because the user should first see and test the application. That time, I think, is not the right time to send him messages about days left to use or about continuing unregistered. So keep this in mind when you start the demo application or your application with RegDialog—
REGDIALOG WILL SHOW WHEN YOU START YOUR APPLICATION THE SECOND TIME! Also, because RegDialog is working with
SYSTEMS REGISTRY, please see the
How to Use It
- Create or open your existing code.
- In the VC++ menu, select
Project->Add to Project->Components and Controls...
- Browse to
RegDialog.ogx(downloaded in RegDialog_ogx.zip) and select it.
- In the application's main class, insert
- In the same class, in the
... SetRegistryKey(_T("MyCompany")); CRegDialog regDlg; regDlg.Check(); ...Of course, replace "MyCompany" with something you choose or have as an adequate name.
RegDialog.cpp, modify the part specified as
"App specific data":
///////////////// App Specific Data !!! //////////// int DaysLimit = 30; long KeyCode = 12345678; CString Version = "1.1"; /////////////////////////////////////////////////////////
DaysLimit is the number of days application will work unregistered.
KeyCode is the code that user must enter to register application.
Version is a string used to avoid that newer versions of your software are all registered if older version was.
All this you can see in the demo project you can download from this page (RegDialog_demo.zip).
Here are a few things you need to know:
OnAskcode() function of the
CRegDialog class is the place you should put what will happen when the user clicked the "
Register" button. It can be some dialog with the price and a hyperlink to registration site, some register.exe file, or a "send mail" link.
KeyCode is a long type variable. If you need
KeyCode with letters included, modify the code so it writes
string types instead of
int types to the Registry database (see the
The code can be easily modified to calculate the user's registration code from letters of his name instead of using the
KeyCode variable compiled in the application.
NOTE: Because this class is working with the system's Registry—the important OS database—be careful if you change the code. If you don't know exactly what the Registry functions are doing, do not change them! Just use the class as it is and it will work. See MSDN for information and help about the Registry system.