- For individual users
- Instant access to solutions
- Ask your tech questions
- Start your 30-day Free Trial
Main Topics
Browse All TopicsGreetings! I'm writing an application in C++ that I plan to publish and sell commercially within the next six months. Right now, I'm working on the licensing part of it and while I have most of the algorithmic details worked out, the one area in which I can't seem to find a comfortable solution is time trial evidence.
For example, if somebody downloads a 30-day trial of my program, I need to properly record on their machine that the trial has started and when it has ended. If they uninstall and reinstall the program, it needs to leave behind evidence of this trial that's difficult to trace. Finally, while the time trial is going on, it needs to track major date changes to the system to prevent somebody from cheating on the time trial by constantly rolling their system clock back.
I've seen several sites that make broad statements like "you should leave at least 3 or 4 pieces of evidence behind" or "don't put this evidence under the main registry configuration piece for your software since somebody could delete that tree and start the trial all over again", but I'm not finding anything specific about what sorts of areas are good to use.
Does anybody have any insight on *specific implementations* of good time trial license algorithms?
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Business Accounts
Answer for Membership
by: Caeser_AugustusPosted on 2004-12-20 at 01:43:37ID: 12865135
How about integrating an activation scheme.
Copy off the DigitalProductID and the OOBETIMER keys from the registry and save them on your webserver.
Or make sure that the setup will not install the app unless the user gets the trial licence key from your webserver, which would be provided after the DigitalID etc. have been saved.
The negatives of these approaches are use of the Internet is necessary.
Places in the registry could be by, registring a customer made dll/activex, in the AppPaths folder.
Or leave a registration file in the common files folder of Program files.
You really need to think about the user as well. If he's someone who can install a Setup monitering utility, you
have a problem. Even worse if he can debug apps/is a cracker, you really can't do much, unless you develop and algo. (which in itself would be a nice product to sell.)
However, to use Microsoft's terminology of "preventing casual copying" just saving off a key, to maybe the apppaths (there are so many of them) or any other entry would do. But that would not deter the person who's hell bent on cracking it. Personally, I've noticed that the best bet would be to not supply the full version at all. And I don't mean crippling the exe by some reg key or a hex hack. I mean don't even send the file.
For trial, give the product in a state that the user knows it will be useful, but to have the full versio, he has to pay.