One rather complex but quite effective technique is to have a 
separate registration programme create two unique GUID's with the API 
CoCreateGUID called the first time the registration program runs on a 
particular machine which pops up a dialog in which the user must 
enter personal details, credit card numbers, etc.  The separate 
registration program must not run in non-administrative mode. Check 
this using the Jedi code IsAdministrator routine.

Insert one of the GUID's in the HKEY_CLASSES_ROOT as a key, and a 
hash of the GUID inserted as data under the key.  Insert both hashed 
data and the key into fields of the user's record, encrypt the record 
with  AES, convert the result to MIME so that it can be attached to 
an e-mail, and require that the user sends this back to you when the 
registration process finishes, or spawn the default mail program from 
the registration program and send the MIME in the mail body.

On receipt, convert the MIME back to ASCII, decrypt this record, and 
with an installation program which can run a  DLL, check for the 
presence of the key and the correct hash of the data when installing. 
Use both, appropriately encrypted and converted to hex as the 
unlocking key for the program, and write a suitable unlocking GUID 
elsewhere with the DLL. The first key can now be erased so that 
distributing  a backup of the system state plus the unlocking key 
will not work on another system.

One can think up numerous variations on this scheme.  Note that as 
described above, this will not defeat an installation monitor which 
also monitors registry changes and file changes before and after 
installation unless one creates a large number of spurious GUID's as 
keys in the Registry each with hashed GUID's as data to make it hard 
for the user of the installation monitor to know which one actually 
contains the real key and data.  It's also possible to link some of 
the GUID keys and data to point to false goals.

It's a good idea to search for cracks from time to time by doing a 
Google search as standard (non-administrative) user on your program's 
name.  Don't open any crack site to look for more information, since 
some may somehow install a trojan on your system even if you are not 
an administrator.

Without going into more detail, all the above must obey the security 
rules if the installation is to succeed under Vista.

Irwin Scollar

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

Reply via email to