Just an opinion

Most trial software runs on the date/time and the user can keep the trial just by setting back the date. Some of it is smarter than others, but still... It relies on the idea that the average user won't care enough to keep setting back the date.

I don't think it can be done completely. I think the best way to do it is to try and hide things from the user (files that track how long the program has been used, etc) and also count on the user messing up just once (if it's ever run with a new date make it lock itself.) And complicating things more is that we're trying to do this in DOS. In Windows you could have a program run at startup to track if the user changes date/ect, but in DOS your program is only functional while the user is using it, then it's terminated.

However, I won't say it's impossible. I'll just say I can't think of any way to completely lock the user out. It seems more likely to me to try and hide how you're tracking things (encrypted files in strange places) from the user and also to count on them making a mistake once.