Software Archive
Read-only legacy content
17061 Discussions

Producing an executable (exe) file that expires after a period

Intel_C_Intel
Employee
1,418 Views
I would like to generate an executable version of my fortran program such that it expires say after a month, or at a specified date. I tried using DATE function in my program and used IF(DATE.GT.some specified date) STOP, but it did not work. There must be an easy way of doing this. Thank you for your help.

MN
0 Kudos
5 Replies
isn-removed200637
1,418 Views
Why not rename it 'Microsoft WIndows XX' and it is sure to.

(Ahem..Christmas joke..No Hard Feelings, Bill?)
0 Kudos
sumitm
Beginner
1,418 Views
The way I have done it is by calling a license subroutine and making a formula on the dates
 SUBROUTINE License(LYR,LMO,LDY)  !Days of availability 
use dflib
use dfport
INTEGER*2 IYR,IMO,IDY,LYR,LMO,LDY,count
CALL GETDAT(IYR,IMO,IDY)

and then when it return a false argument I use delfilesQQ('license') to delete some essential files which will make the program give an error

Anybody has any better ideas, please let us know.
Thanks
0 Kudos
Intel_C_Intel
Employee
1,418 Views
I too have been looking at a licencing method and my current thoughts have been on similar lines to sumitm's. However, there are not always suitable files to delete, and the executable cannot delete itself. If the files to be deleted are generated by the executable, it must be possible to start without them.

Another point is that most recipients copy received files and put them in a safe place. Then if the executable expires and deletes some of them, they can be copied back. The standard licence extension technique is then to change the date on the computer and run again. Do you know anyone who hasn't changed the date on the computer? To develop and test such a licencing method one must do just that.

Bear of little brain
0 Kudos
Intel_C_Intel
Employee
1,418 Views
Another possible solution is to write a separate program that is loaded into memory when the program is first run and then loads up at OS startup from then on. This program would keep track of how long it is running and write that information to a file that is hidden. Once the alloted time is reached, then the program would do something, say, write to a file that the time limit has been reached. The program you are distributing would always check this file to see if there is time left before expiration and refuse to run afterwards. With a little more thought, you could probably make this approach very simple but effective. This would get around the problem of users resetting the date on their computer.

Tom
0 Kudos
Steven_L_Intel1
Employee
1,418 Views
Several commercial license managers, including FLEXlm which CVF uses, have an option to check for the system clock being set back. This is not foolproof, but it tends to deter all but the most determined thieves. Usually what these do is look in certain system folders or the root folder for files with modified dates in the future.

You have to decide for yourself how much effort you want to put in to protecting your application, compared to how much it costs and how annoying it is to users. The higher the product cost, or the likliehood of pirating (think Windows or Office), a higher effort can be worthwhile.

While we know that CVF is widely pirated in the far east, we've not gone overboard in antipiracy protection. We may do a bit more in future versions.

Steve
0 Kudos
Reply