468,110 Members | 1,897 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,110 developers. It's quick & easy.

Creating a Trial Period

Good evening all,

I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. Does anyone know how I can write back to the program file
so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a month
or two? I thought about creating a second file that stores the date but
then if they delete that it will just think it is a new computer it has
never been used on before.

Any help you may be able to provide would be greatly appreciated.

Yours sincerely,

William Foster

*** Sent via Developersdex http://www.developersdex.com ***
Jun 27 '08 #1
6 3155
Hello William,
I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. Does anyone know how I can write back to the program
file so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a
month or two? I thought about creating a second file that stores the
date but then if they delete that it will just think it is a new
computer it has never been used on before.
Almost anything we suggest here can be worked around

Data stored in the registry can be discovered
Writing back to the exe or dll could be reversed by downloading the exe/dll
again
Checking Date online could be intercepted and faked.

But all are valid techniques in their way. (Not sure if you can write to
the exe though)

--
Rory
Jun 27 '08 #2
On Jun 5, 6:19 am, William Foster <nos...@devdex.comwrote:
Good evening all,

I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. Does anyone know how I can write back to the program file
so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a month
or two? I thought about creating a second file that stores the date but
then if they delete that it will just think it is a new computer it has
never been used on before.

Any help you may be able to provide would be greatly appreciated.

Yours sincerely,

William Foster

*** Sent via Developersdexhttp://www.developersdex.com***
It should also be mentioned that whatever steps you take to implement
this trial period can be easily found out by using a program like
Reflector. With that said, you should either use an obfuscation
program to make the source harder to read, or write that part of the
code with a language that cannot be easily disassembled such as C++ or
even VB Classic.

Some questions you really need to ask yourself are:

How important is what you are trying to protect?
How much are you willing to pay (in time, money and effort) to
implement this behavior?
What are the chances people are going to try and bypass your
implementations?

Those all come down to this last one, which is normally the decision
maker:

Is the cost (in time, money and effort) going to be more than the
potential lose in income from people bypassing the trial period?

One other option is to offer two versions of your application, one for
trial and one for retail. In the trial version leave out functionality
that would make upgrading worthwhile, or add in features that are
removed in the retail version (advertisements, watermarks on printed
documents, a splash screen that lists the upgrade benefits, etc). I
realize that these (especially the former) might not be possible to
implement in all applications, but when you can I believe the return
on investment is much greater than trying to implement the trial
period functionality.

Thanks,

Seth Rowe [MVP]
Jun 27 '08 #3
This brings up a whole different question: How does somebody create software
activation? I am mainly thinking the way that Microsoft does with programs
like Office 2007. Once the retail version of the program is created, the
developer needs some form of piracy protection...
"rowe_newsgroups" <ro********@yahoo.comwrote in message
news:0c**********************************@x35g2000 hsb.googlegroups.com...
On Jun 5, 6:19 am, William Foster <nos...@devdex.comwrote:
>Good evening all,

I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. Does anyone know how I can write back to the program file
so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a month
or two? I thought about creating a second file that stores the date but
then if they delete that it will just think it is a new computer it has
never been used on before.

Any help you may be able to provide would be greatly appreciated.

Yours sincerely,

William Foster

*** Sent via Developersdexhttp://www.developersdex.com***

It should also be mentioned that whatever steps you take to implement
this trial period can be easily found out by using a program like
Reflector. With that said, you should either use an obfuscation
program to make the source harder to read, or write that part of the
code with a language that cannot be easily disassembled such as C++ or
even VB Classic.

Some questions you really need to ask yourself are:

How important is what you are trying to protect?
How much are you willing to pay (in time, money and effort) to
implement this behavior?
What are the chances people are going to try and bypass your
implementations?

Those all come down to this last one, which is normally the decision
maker:

Is the cost (in time, money and effort) going to be more than the
potential lose in income from people bypassing the trial period?

One other option is to offer two versions of your application, one for
trial and one for retail. In the trial version leave out functionality
that would make upgrading worthwhile, or add in features that are
removed in the retail version (advertisements, watermarks on printed
documents, a splash screen that lists the upgrade benefits, etc). I
realize that these (especially the former) might not be possible to
implement in all applications, but when you can I believe the return
on investment is much greater than trying to implement the trial
period functionality.

Thanks,

Seth Rowe [MVP]

Jun 27 '08 #4
Hell Andy,

As you might know, Microsoft products are very popular - also among
software pirates. And it is that no lock is 100% safe.
That said maybe you should consider...
1. Each protection can be cracked
2. A very good protection is difficult - read expensive
3. Will a good protection be in a good ratio to the price of your product?

Best regards,

Martin

P.S. I live in Hong Kong - a place where you can buy Microsoft (Vista,
Office 2007 etc.) pirate copies in shops...
On 05.06.2008 20:35, schrieb Andy B:
This brings up a whole different question: How does somebody create software
activation? I am mainly thinking the way that Microsoft does with programs
like Office 2007. Once the retail version of the program is created, the
developer needs some form of piracy protection...
"rowe_newsgroups"<ro********@yahoo.com wrote in message
news:0c**********************************@x35g2000 hsb.googlegroups.com...
>On Jun 5, 6:19 am, William Foster<nos...@devdex.com wrote:
>>Good evening all,

I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. Does anyone know how I can write back to the program file
so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a month
or two? I thought about creating a second file that stores the date but
then if they delete that it will just think it is a new computer it has
never been used on before.

Any help you may be able to provide would be greatly appreciated.

Yours sincerely,

William Foster

*** Sent via Developersdexhttp://www.developersdex.com***
It should also be mentioned that whatever steps you take to implement
this trial period can be easily found out by using a program like
Reflector. With that said, you should either use an obfuscation
program to make the source harder to read, or write that part of the
code with a language that cannot be easily disassembled such as C++ or
even VB Classic.

Some questions you really need to ask yourself are:

How important is what you are trying to protect?
How much are you willing to pay (in time, money and effort) to
implement this behavior?
What are the chances people are going to try and bypass your
implementations?

Those all come down to this last one, which is normally the decision
maker:

Is the cost (in time, money and effort) going to be more than the
potential lose in income from people bypassing the trial period?

One other option is to offer two versions of your application, one for
trial and one for retail. In the trial version leave out functionality
that would make upgrading worthwhile, or add in features that are
removed in the retail version (advertisements, watermarks on printed
documents, a splash screen that lists the upgrade benefits, etc). I
realize that these (especially the former) might not be possible to
implement in all applications, but when you can I believe the return
on investment is much greater than trying to implement the trial
period functionality.

Thanks,

Seth Rowe [MVP]

Jun 27 '08 #5
On Jun 4, 10:19*pm, William Foster <nos...@devdex.comwrote:
Good evening all,

I have written a single file program in Microsoft Visual Basic 2008
Express Edition that I need to build with a Trial Period.

I have built in a simple check the date procedure; but anyone can get
around that. *Does anyone know how I can write back to the program file
so that the software self destructs or becomes unusable after a
particular date is reached even if the person sets the date back a month
or two? I thought about creating a second file that stores the date but
then if they delete that it will just think it is a new computer it has
never been used on before.

Any help you may be able to provide would be greatly appreciated.

Yours sincerely,

William Foster

*** Sent via Developersdexhttp://www.developersdex.com***
Another solution is Protection PLUS (http://www.softwarekey.com/
swk_products/plus/) is easy to implement in your application, has many
features but it's a little bit expensive.
Jun 27 '08 #6
Good afternoon all,

Thank you all for your feedback; I hadn't really ever thought of the
registry write that was suggested; I think this will probably be the
easiest and most troublesome to users who aren't that interested or
savvy in breaking the rules.

I take on board the feedback that nothing is 100% safe, especially given
the feedback from Hong Kong [That is quite amazing].

As highlighted, it is not something I am interested in spending too much
time or money on, so I will just work on a risk minimisation option
which the registry allows for.

Yours sincerely,

William Foster

*** Sent via Developersdex http://www.developersdex.com ***
Jun 27 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

15 posts views Thread by Rodrigo Ferreira | last post: by
3 posts views Thread by Showjumper | last post: by
reply views Thread by Nima | last post: by
5 posts views Thread by TheNortonZ | last post: by
1 post views Thread by Solo | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.