I know TurboPower with their OnGuard components which generates inifiles
suggested you stick copies of the inifile all over the place and also use
the registry. I read somewhere where someone had 6 inifiles all encryped,
all with different names stuck in various windows directories. Then checked
that they still existed and that they all validated.

I use double encryption for demo versions. Thus, if a hacker tries to
decrypt a 31 digit character, which includes a funny formatted expiry date,
and in it's encrypted form spans 2 A4 pages of garbage symbols and black
blobs, they must be keen. Because they would have to double decrypt it
figuring out the 2 different algorithms I used, then work out what the 31
character code means. I just keep it in the same directory as the app. If it
is missing, the program won't load. If it has been tampered with, the
program won't load. If the file date has changed, the program won't load.
Release codes are generated for the computer that has registered the
program, the encrypted demo code is deleted. Won't work on any other
computer. It also takes care of client/server instances. Therefore, if
someone copied the app to another computer it would not work.

So forget GUIDS and the registry, it is easy enough to find out when
something was added to registry and when, just like it is easy to find out
what was installed on your HDD and when.

 
Mike




-----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf
Of Walter Prins
Sent: Tuesday, 31 May 2005 12:33 AM
To: [email protected]
Subject: Re: [list] RE: [delphi-en] Re: GUIDs and the registry

Vahan,

Programs like RegMon (http://www.sysinternals.com/ntw2k/source/regmon.shtml)

makes it very easy to find things that are hidden merely by putting it in an

obscure place. IE I don't think that's a very good way of protecting the 
app.  It would be better in my humble opinion, to retrieve (for example) the

Windows serial number/key and/or activation key (which should be unique per 
installation of Windows) at install time, and hash this in some way, and 
store result of the hash (the hashed value) in a standard location for your 
app, eg HKEY_LOCAL_MACHINE/Software/<>/ActivationKey.   This way it doesn't 
matter if the user sees it or knows how to use regedit as they won't know 
what goes into the has value, nor how you calculate it.

When the application starts, it can simply recalculate the hashed value and 
compare it to the install time value from the registry.  Thus, even if the 
user is clever enough to copy the app and the registry tree for your 
application over to another PC, the new calculated hash value on the new 
machine will be different to the one on the original machine (due to the 
windows serial/key and other values being different), and thus the app won't

work unless they also modify all the registration/key etc values that you 
use in your hash calculation to be the same as on the original machine. 
Since they won't know exactly what you use, that is likely to be more hassle

than it's worth the average user. Good things to try and include would be: 
Windows Product key, Activation key (if you can find it), Network Mac 
address, HDD Serial number, Video card adapter ID string. etc.

Cheers

Walter



 




-----------------------------------------------------
Home page: http://groups.yahoo.com/group/delphi-en/
To unsubscribe: [EMAIL PROTECTED] 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/delphi-en/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to