Link to home
Start Free TrialLog in
Avatar of RedKelvin
RedKelvin

asked on

Creating Software Product Licensing

Hi All,
I am writing some software licensing software, I have the big picture on how it will work, only trouble is, I don't know how to get around people turning their system clock back to get around it.

ANY ideas would be appreciated.

Thanks in advance
Avatar of octothorpe
octothorpe

How about writing a "last date seen" value into the registry?  Then you check it every time the program is run, and then update it to the current date.  If the current date read from the system is significantly earlier than the recoded date, then refuse to run.  You could encrypt it to look like something else so they don't realize it's a date, and even check to see if it's missing...?
Avatar of RedKelvin

ASKER

Yes I have considered this but I am hesitant to go this way. We are using C# and Microsoft recommendations are that the registry is no longer to be used. XML files are recommended, but I don't like to do that, as it is too easy to find.
hi
encrypty "last date seen" and write it to a file with a rare extension and keep.
start appliation only if
 1. such a file is successfully opened by ur application and
 2. encrypted data is successfully decrypted.
 3 and finally ur maching criteria is satisfied.

;-)
Shiju
ok, but where do I store the file then, I can't store it in the application folder, because that is just obvious, and if I store it somewhere else, there is the chance the user could accidentally delete it.
Hi RedKelvin
  mmm ok, my opinion is,  best place is the application folder
if u encrypt the data then user cannot directly understand the information.
and second thing is
>>user could accidentally delete it.
if a user deletes/modify  some files in an application folder then that is not accidental
user definitely would have been tried some tricks. its user's fate if the application is not running after modifying or deleting the file.

;-)
Shiju
if u want to hide ur file from a normal user
 u need to keep the file in system folder, with a non striking name and extension
or keeping entries in registry, that u are not interested (me too ;-) )

;-)
Shiju
Avatar of Eduard Ghergu
You can use the .resource file where you can put the application resources together with the encrypted form of the date. This file is usually placed in the same folder with the application exe file.
I sort of liked the idea of using the .resources file, but Microsoft help, says specifically not to store passwords or security sensitive information
Yes, it is not recomended, if the informations are not encrypted.
with regards to ActiveLock, this appeas that it can be fooled by turning the system clock back, when using a date expiry
If I remember correctly, ActiveLock detects changes of clock.
thanks emoreau, but I would prefer not to use third party components for something so critical
ASKER CERTIFIED SOLUTION
Avatar of Eduard Ghergu
Eduard Ghergu
Flag of Romania image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks ghergu, i chose your answer because you alerted me to the invisible part of the registry that I was not aware of.
Hi ghergu

I just found this PAQ and would lke more information on the "... "invisible" part of the Windows Registry..."

I will be more that happy to pose a new question if you (or someone else) respond to this post.

rrbecker
Hello!

The Windows Registry is composed by two files: System.dat and User.dat. The Registry Editor utility (regedit.exe) gave access to some parts from the User.dat file. The rest of the content is undocumented. Usually, you cannot find too easy documentation about this topic...
Hi again ghergu,

OK, but you made reference to it so I assume you have tried it or have additional information about how to go about doing it. (hidding the registry key and value)

If you would share that knowledge I would be more than happy to open a new question. Just let me know if you are willing to do that and then let me know how or what you would like me to title the new question.

Thanks in advance

rrbecker
RedKelvin, Please refer to this recent post of mine if you want to not allow the user to set the system clock back, I am not sure what language you are using however i wrote it in visual basic 6.0:

https://www.experts-exchange.com/questions/21515047/Xtrial-recode-vb6-15-day-trial-reconfigure.html
thanks egl1044, I will take a look at that.