LITE security / licensing aid (Cosmin Prund)

A good hiding place in the registry is in the forest of CLSID entries 
in HKEY_CLASSES_ROOT which can only be altered with administrative 
rights. It can read by all users but it can't be found easily and deleted.

A CLSID can be created statically with Str-Ctrl-G in Delphi for use 
at installation time. Counters can be placed there which are copied 
to another CLSID in HKEY_CURRENT_USER and decremented  at each new run.

That offers the possibility of arranging different trial run counts 
or types of run or dates for different users. A CRC checksum for the 
exe file and recorded in the installation program, then placed in the 
initial CLSID directory for checking at startup of the program 
defeats changing the executive with a disk editor or a debugger to 
skip the checking code. A hash code on a CLSID within a CLSID can 
offer protection of the CLSID itself.

CLSID's can be also created dynamically at run time with the Windows 
API call CoCreateGUID so that different CLSID's are made on different 
machines.  If returned to the programmer via a mail option in the 
installation program, they offer a unique key to identify a user and 
the machine. Returning the hash code of the CLSID is better, since it 
hides the CLSID from view at mail time.

These methods can be defeated with one of the installation monitors 
available on the Web which creates a copy of the registry before 
installation and compares it with the result after installation as 
can all methods which rely on files. A small cloud of dummy CLSID 
keys generated at random along with sub-CLSID referenced keys when 
the installation program runs or after each run of the progam can 
make deleting them somewhat more painful since the user can't know 
which ones actually  contain needed data.  Examine HKEY_CLASSES_ROOT 
with Regedit or Regedit32 and look at the quantity of CLSID's under 
Microsoft, for example.

Irwin Scollar






_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to