Software working for limited time period
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
Johan Lombaard wrote:
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
store minutes left in registry key, update at various intervals, this is a countdown, so outside of gaining a few minutes by shutting down between your updates, it is irrelvant to the physical date. Also direct byte storage to a sector. Or if you are really up to the task, write it back to the executable in an encrypted and CRC'd block (to reduce editing). I did the latter and regretted it through no fault of my own, that is sort of what I get for trying to create a new encryption style.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
Johan Lombaard wrote:
Does anyone have ideas on how to best do this ?
fetch the current time from some place on the web.
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
Johan Lombaard wrote:
...the user can still keep setting it back on day 29.
Does your application require Internet connectivity?
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
-
Johan Lombaard wrote:
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
store minutes left in registry key, update at various intervals, this is a countdown, so outside of gaining a few minutes by shutting down between your updates, it is irrelvant to the physical date. Also direct byte storage to a sector. Or if you are really up to the task, write it back to the executable in an encrypted and CRC'd block (to reduce editing). I did the latter and regretted it through no fault of my own, that is sort of what I get for trying to create a new encryption style.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
You could check for the "real" time by looking for a time server. But this would require an internet connection, which may not be available. You can also build trial versions that use 'phone home' capabilities built in. But be up front with you potential client about that.
Chris Meech I am Canadian. [heard in a local bar]
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
This might not be particularly to the point, but I recall reading an article by somebody, the gist of which was that he started making more sales when he switched from time limited demos to limited functionality/unlimited time demos. Users seemed more likely to buy the product when they could see functionality there that would be useful but that they couldn't get to.
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
From what I have seen and heard, there is no good way to do trial software that can't be cracked by someone. The only viable solution I see is to store the user dates of expiration on a server, and force communication between the server and your app. If you don't have internet connectivity, then that option becomes a problem. Have you thought about doing a freeware version, with extremely limited functionality? You can have alot of advanced options disabled, and have a description for them. Then the user can see them, and a description of what they do.
I get all the news I need from the weather report - Paul Simon (from "The Only Living Boy in New York")
-
This might not be particularly to the point, but I recall reading an article by somebody, the gist of which was that he started making more sales when he switched from time limited demos to limited functionality/unlimited time demos. Users seemed more likely to buy the product when they could see functionality there that would be useful but that they couldn't get to.
That's the conclusion we came to. When the users grasp the functionatlity and see what they will get purchasing it's much more effective. Plus, the more sophisticated the technique for limited "demo" time period the more time you spend maintaining the code/process. And someone will break it down eventually.
Thomas
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
Sell an atomic clock with the software.
Roger Irrelevant "he's completely hatstand"
-
Self-ediding exe is not so easy ... and does not help when user reinstalls the software
rrrado
rrrado wrote:
Self-ediding exe is not so easy
self-editing exe is a piece of cake, but you are correct, it doesn't stop reinstalls. I used it as a cross reference to the hidden sectored equivalent this way it had a doubled checked counterpart.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
On option is to have a critical dll for the application built dynamically with the restriction at delivery time, ie when they click download now. It doesn't work if the disk is burnt and mass produced however. One Key thing to keep in mind is that Adobe Photoshop is the definitive software graphics package and they have a 30 day trial and it is always cracked. I wouldn't much time keeping people honest. Software thieves are not likely to pay just because the trial is hard to crack.
Need a C# Consultant? I'm available.
Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway -
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
Try searching the Business of Software Forum[^]. That particular question has been answered there many, many times there before. From personal experience I can tell you that it's far easier and more secure to use a third party licencing component than to try to write your own.
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
-
Try searching the Business of Software Forum[^]. That particular question has been answered there many, many times there before. From personal experience I can tell you that it's far easier and more secure to use a third party licencing component than to try to write your own.
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
Anna-Jayne Metcalfe wrote:
From personal experience
and less headaches if your security algorithms get used for alternate and more troublesome uses by others.... :sigh:
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
I hope this is the correct forum. It's definitely not a coding question, since I'm looking for ideas on the WHAT, not the HOW ... I need to give users a 30 day trial period on a product, but I want to prevent them from changing back the clock to get the software to work again. Just storing a flag when it has expired will not solve it, since the user can still keep setting it back on day 29. Does anyone have ideas on how to best do this ?
Johan Lombaard Only two things are infinite, the universe and human stupidity, and I'm not sure about the former - Albert Einstein
-
what about hide installation date somewhere into registry? I know this won't stop any cracker but in fact there is nothing what would stop good cracker :)
rrrado
Actually there is. The iPhone will stop any hackers... er wait... nevermind.:-D
What I am up to: ReadyToGiveUp(Not!)[^] What friends are up to:SQLServerCentral[^]
-
This might not be particularly to the point, but I recall reading an article by somebody, the gist of which was that he started making more sales when he switched from time limited demos to limited functionality/unlimited time demos. Users seemed more likely to buy the product when they could see functionality there that would be useful but that they couldn't get to.
That's the best way I guess. Further than that, almost any lock will break, but if the demo has NOT some functions at all, then it's uncrackable and it is not likely that a hacker buys a software to hack it. p.s. Disabling functionality might break easily. It's better to remove codes from functions you don't want to be in demo version.
// "Life is very short and is very fragile also." Yanni
while (I'm_alive)
{
cout<<"I love programming.";
} -
This might not be particularly to the point, but I recall reading an article by somebody, the gist of which was that he started making more sales when he switched from time limited demos to limited functionality/unlimited time demos. Users seemed more likely to buy the product when they could see functionality there that would be useful but that they couldn't get to.
I think this depends on the user. I have not purchased any diskkeeper software in the past (although I have tried the product many times) primarily because the restricted functionality demo did not function well enough for me to want to buy the full version. Specifically running the demo will not defragment a hard drive by more than a few percent so after an initial run with a NTFS drive with 80% fragmentation (I do a lot of programming) after running it the fragmentation was reduced to 76% wow. On more than one occasion I actually took the time to email them that by not letting me try the software to see that it indeed does what it claims that they would not get any licences from my department... [EDIT]Well they now have a full functional version. If I get some free time I will give it a try.[/EDIT]
John
-
Try searching the Business of Software Forum[^]. That particular question has been answered there many, many times there before. From personal experience I can tell you that it's far easier and more secure to use a third party licencing component than to try to write your own.
Anna :rose: Linting the day away :cool: Anna's Place | Tears and Laughter "If mushy peas are the food of the devil, the stotty cake is the frisbee of God"
Anna-Jayne Metcalfe wrote:
it's far easier and more secure to use a third party licencing component
Yes, but some times you want to change something that is not implemented yet. I had this trouble with one of them. I also should add that 'never use hardware locks'. Most of those usb, serial or parallel locks are a piece of sh*t. Just think about you want to update executable automatically, but you have to have the hardware to re enable security per user:wtf:. -- modified at 14:30 Thursday 30th August, 2007
// "Life is very short and is very fragile also." Yanni
while (I'm_alive)
{
cout<<"I love programming.";
}