[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Creating Software Product Licensing

Posted on 2005-04-06
20
Medium Priority
?
328 Views
Last Modified: 2011-09-20
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
0
Comment
Question by:RedKelvin
  • 7
  • 4
  • 3
  • +4
20 Comments
 
LVL 1

Expert Comment

by:octothorpe
ID: 13722993
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...?
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 13723124
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.
0
 
LVL 14

Expert Comment

by:Shiju Sasidharan
ID: 13724209
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
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
LVL 22

Author Comment

by:RedKelvin
ID: 13724288
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.
0
 
LVL 14

Expert Comment

by:Shiju Sasidharan
ID: 13724471
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
0
 
LVL 14

Expert Comment

by:Shiju Sasidharan
ID: 13724507
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
0
 
LVL 10

Expert Comment

by:Eduard Ghergu
ID: 13724554
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.
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 13725730
I sort of liked the idea of using the .resources file, but Microsoft help, says specifically not to store passwords or security sensitive information
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 13732708
0
 
LVL 10

Expert Comment

by:Eduard Ghergu
ID: 13733753
Yes, it is not recomended, if the informations are not encrypted.
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 13749562
with regards to ActiveLock, this appeas that it can be fooled by turning the system clock back, when using a date expiry
0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 13751311
If I remember correctly, ActiveLock detects changes of clock.
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 13778248
thanks emoreau, but I would prefer not to use third party components for something so critical
0
 
LVL 10

Accepted Solution

by:
Eduard Ghergu earned 375 total points
ID: 13779191
The best way is to use a two-ways method:
1. Read some system hardware component ID's (HDD, microprocessor, whatever) and create a system unique identifier in an encrypted form that will be send by the user to you. As a response, he or she will get a code generated based on the system id, that will be used for unlocking the program.
2. Write the time in the "invisible" part of the Windows Registry (not accessible with Registry Editor) and use the value accordingly with your licensing policy.

I hope that will be ok for you. Good luck!
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 13884828
Thanks ghergu, i chose your answer because you alerted me to the invisible part of the registry that I was not aware of.
0
 
LVL 2

Expert Comment

by:rrbecker
ID: 14608512
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
0
 
LVL 10

Expert Comment

by:Eduard Ghergu
ID: 14621661
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...
0
 
LVL 2

Expert Comment

by:rrbecker
ID: 14624809
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
0
 
LVL 29

Expert Comment

by:nffvrxqgrcfqvvc
ID: 14624900
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:

http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21515047.html
0
 
LVL 22

Author Comment

by:RedKelvin
ID: 14628923
thanks egl1044, I will take a look at that.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
When you discover the power of the R programming language, you are going to wonder how you ever lived without it! Learn why the language merits a place in your programming arsenal.
Loops Section Overview
Screencast - Getting to Know the Pipeline

825 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question