How can I give a 30 day working version of a program?
-
I want to give people a 30 day working version of software that I write and after which time, if they haven't entered the correct password then the program fails to execute. If I just hardcode some password like 'duckpond', then what stops an individual from giving that password to someone else? Nothing. I am confused and frustrated. Please, any response you can give me will be greatly appreciated. Details and a sample project would be cherished. Sincerely, Erich J. Ruth (an overworked graduate student)
-
I want to give people a 30 day working version of software that I write and after which time, if they haven't entered the correct password then the program fails to execute. If I just hardcode some password like 'duckpond', then what stops an individual from giving that password to someone else? Nothing. I am confused and frustrated. Please, any response you can give me will be greatly appreciated. Details and a sample project would be cherished. Sincerely, Erich J. Ruth (an overworked graduate student)
Hi! When the program starts for the first time you can add the item in the registry with the date of the first use and check it all the time the program starts. Concerning the password you can use different techniques... For example, at the first run you can generate a unique serial number for the program and save it in the registry (it can be a GUID). Later when the version expires the user will have to send (tell) you the serial number and you will give him the password which will work only with this serial number. You can easily make a password out of the serial number. In this case if the user will run this program on the different computer he will need a different password. It's just an idea, but it can help you ... Regards, Alex Gorev, Dundas Software. ================== The original message was: I want to give people a 30 day working version of software that I write and after which time, if they haven't entered the correct password then the program fails to execute.
If I just hardcode some password like 'duckpond', then what stops an individual from giving that password to
someone else? Nothing.I am confused and frustrated. Please, any response you can give me will be greatly appreciated. Details and a sample project would be cherished.
Sincerely,
Erich J. Ruth (an overworked graduate student) -
I want to give people a 30 day working version of software that I write and after which time, if they haven't entered the correct password then the program fails to execute. If I just hardcode some password like 'duckpond', then what stops an individual from giving that password to someone else? Nothing. I am confused and frustrated. Please, any response you can give me will be greatly appreciated. Details and a sample project would be cherished. Sincerely, Erich J. Ruth (an overworked graduate student)
Don't do this with a hardcoded password. Use the registry, and an install program. First step. When you install the software with the install program, and you setup all your default registry settings, add a new registry item (call it something inconspicuous). Second Step. Get a GUID number and the date you are doing the installation. Using a (secret) calculation, merge these two numbers together, and store them both in the registry. Now when you start your program, get the current date. Calculate the install date from the registry data, and work out how many days are left for the user to use your software. Of course there are many other possible methods. This is just one way, there may be a way which suits you better. Of course you could always just store the install date in the registry, but there is nothing to stop someone changing it. For that matter theres nothing stopping someone really determined from cracking the method I just described. Good Luck.
-
Don't do this with a hardcoded password. Use the registry, and an install program. First step. When you install the software with the install program, and you setup all your default registry settings, add a new registry item (call it something inconspicuous). Second Step. Get a GUID number and the date you are doing the installation. Using a (secret) calculation, merge these two numbers together, and store them both in the registry. Now when you start your program, get the current date. Calculate the install date from the registry data, and work out how many days are left for the user to use your software. Of course there are many other possible methods. This is just one way, there may be a way which suits you better. Of course you could always just store the install date in the registry, but there is nothing to stop someone changing it. For that matter theres nothing stopping someone really determined from cracking the method I just described. Good Luck.
As you say, "there's nothing stopping someone really determined...." I experimented with a similar method a while ago. I generated a GUID and stored the install date in a binary form under the GUID in HKEY_CLASSES_ROOT (where I thought it would be inconspicuous). It all worked well until I ran a registry cleaning program which spotted the entry as "orphaned" and offered to remove it. The moral being of course, try to crack it when you've written it, and if your succeed, try something else. Even better, try a combination of approaches - writing an encrypted file to Windows\System32 may be a good idea as well.