Re: Get time difference without time()
- Posted by leviathan at uswest.net Mar 15, 2001
- 490 views
> Let me guess, You are wanting to do this to prevent the > following scenario: > > Joe Blow downloads your shareware (time-limited) software. > Joe Blow sets his computer clock to 5 years ahead. > Joe Blow installs your software. > Joe Blow sets his computer clock back to normal time... > ... thus defeating your time-limit. > > The truth is, I think the user can change any time that you > can check with your program. However, if you use date() then > check to make sure that your saved-time is actually AFTER > the current time, that should prevent Joe Blow from > preventing you from preventing him from using your software > more than the specified amount of time. Simple as this, record the date the program was first run. Check for negative days (in this case, just go and deny the program to run anymore), check for it running past any number of days (deny the program to run afterward?). Best way to do this is either: 1) Put the key into the registry. A tad trickier to defeat such a problem, but it can still be defeated by even a weak cracker-jocker like me, and some free programs on the web (Sysinternals RegMon). 1a) If you do put a key into the registry, modify some key that _looks_ highly important (Anything regarding Windows/IE* seems important to me, no doubt someone was crafty enough to slip something like that by me), but it isn't (i.e. delete it, and nothing noticable happens). This'd throw me off :) 2) If you're good with executables, particularly win.com or even VxDs, toss into their headers, wherever unused, the date code. Deleting any such system file could cause the OS to cease function/retire life, and it'd be VERY hard for just anyone to crack such a eval deal. (I _might_ be able to do it - again, with a couple of free programs, SysInternals FileMon and Hackman, and even VC++ debug, perhaps) 3) Put a bug on the HD. With Filemon, its easy to track something like this down. 4) Self-modifying executable. Can't be done in Euphoria, however. (So I've heard). So, any way you do it, you're screwed, it'll be cracked. But when you do implement such a deal, be very very crafty about it, and remember: It will be cracked. Oh well. HTH, --"LEVIATHAN"