Techniques to create a limited time trial version

Blitz3D Forums/Blitz3D Programming/Techniques to create a limited time trial version

Carolinaaa(Posted 2007) [#1]
What techniques do you use to create a time limited trial version of your programs? for example a 30 days trial.

Also, does it change with Windows Vista? I have heard that the new UAC puts a lots of problems.

Also, if i create a file with blitz3d and copy the date there, is there any way to change the attibute of that file and set it to hidden? (so it will not be seen on the windows browser unless the user expressely set to see hidden files).

Also, another alternative, if the file can't be set to hidden, is to create that file into the C:\windows\ folder

In this case, even if the user deletes the folder of your program, the file continues there and if the user reinstalles the program, the old file continues in the windows folder. I have trited it and it works with XP, but will it work with Vista? (because i have read that the UAC prevents writing into protected folders like windows and program files).

thank you.


Rroff(Posted 2007) [#2]
IMO your wasting your time, limit features for trial version rather than a timelimit which can easily be worked around...

In vista (and a properly setup XP install - tho most people just make their default user admin) you can only write to the users documents and local application data folders.


Danny(Posted 2007) [#3]
Yes, hiding it in C:\windows is a good one - i've used it before ;)
I've got "only" 455 files in my C:\Windows folder.

If you, for example, create a file called "mscrapsys.dll" in that folder. There is NO WAY IN HELL anyone is going to detect that, you've got write access to that folder, and NO ONE is going to delete a file in THAT folder - since it's all giberish.

Inside that file, put a date/time stamp. As a protection you could check IF that files exists, if not, it's a fresh install. You can compare the date/time in the file with the system's if there's a discrepancy you can lock your application (clock temper detected).
Obviously this ain't fool proof. If you reinstall windows, you can reinstall your app again. Or if you install it on a fresh machine... but that's no too bad I guess..

p.s. Ah ok, I'm not sure if an 'ordinairy user' has access to that folder!?!

But yeah disabling the 'Save' feature would surely motivate anyone to consider a purchase :)

;)


jfk EO-11110(Posted 2007) [#4]
Hiding in C:windows most likely won't work in Windows Vista. Basicly Vista does not allow you to write to any other folder than the one your game is installed in. and it will also allow only certain user folders, formerly known as "settings and documents" etc. to install your game. At least from what I've heard. Of course I didn't install it.
Even in XP you cannot write to the windows directory if the user isn't logged in as administrator!


There is a way to completely hide files, but this doesn't work on fat32 partitions (win98,ME). It's called "alternative streams" or something.

There are a few ways for timelimited trials:

-Registry. To add or edit a registry key. Personally I think this sucks since too many poop demos and trials completely fill the registry with trash. It's not possible from within blitz, but I think there's a userlib. take care the registry is messed up easily. I wouldn't suggest to use the registry, although many apps use it exactly for such purposes.

-Online. If your app is going to connect to the internet anyway, then you can use a mysql entry for every installation - well as long as there ain't billions of copies.

-A hidden file as you suggested. Works perfectly on older systems, but may be tricky on vista. I also still need some information about vista. Probably there are some folders you are allowed to write to, other than the installation folder. However, such a hidden file (doesn't have to be hidden physicly, only hard to find) should look like something that is absolutely not related to your game.

-Simple date functions that will check the system date to see if the installation was done more than say 30 days ago. Now, you may hope that the user will suspect all kinds of security measures against date cheating and won't even try.
Personally I don't try to fool trial restrictions and I think a lot of people do so as well.


GfK(Posted 2007) [#5]
Basicly Vista does not allow you to write to any other folder than the one your game is installed in.
That's wrong, for a start. Vista has a 'VirtualStore' in each profile. Writes to a program folder are redirected to here by the filesystem.

This is only in place because of backward-compatibility and may eventually be phased out, so don't rely on it.

The only place to reliably store data is in C:\ProgramData, or C:\Users\<name>\AppData.

There's a huge long thread about this somewhere.


b32(Posted 2007) [#6]
I used Softwarekey Trial Creator. It works quite easy and can create a 30 day trial version of an exe. I tried changing the system timer to fool it, but it didn't work.


jfk EO-11110(Posted 2007) [#7]
Ah I like those "somewhere"s. Good info about the VirtualStore, thanks. But I assume you still need admin rights to use the "system" folders?

B32 sounds good.
EDIT wow and it seems it's even Freeware:
http://www.softwarekey.com/swk_products/trial_creator/


Rroff(Posted 2007) [#8]
Hate to break the bubble... but hiding files is only gonna stop the most casual of users - any average user can easily use something like process explorer and find out exactly where your writing or reading from files... same with registry keys.

The only way to reliably enforce a trial period is via online authentication and a trial key and even that can be worked around - but not by any old joe.


Naughty Alien(Posted 2007) [#9]
..as for me I will not even try to make time limited version...instead of that simply release game with limited content itself (eg. 1 level and thats it) so, trust me, noone going to play 1-2 levels(or many as you think its necessary) again and again and on another side its more than enough to show what is your game about..


Pinete(Posted 2007) [#10]
Hi all,
I'm interested on this. Someone could point to the other thread that Gfk says?

and just a question:
What's the method popcap guys uses for limiting the games to one hour?

Thanks in advance!


t3K|Mac(Posted 2007) [#11]
agree with naughty. just strip the content.


OJay(Posted 2007) [#12]
what naughty said.
time trials are outdated, annoying and crackable within minutes (what Rroff said).
content limited versions are 100% crack proof ;)


*(Posted 2007) [#13]
personally I would have a limited program, save feature disabled or limited to x number of levels.


_33(Posted 2007) [#14]
Well, if you could poke values into your EXE, then all you have to do is poke the install date in the EXE and compare at runtime if the number of days has exceeded, say an arbitrary value of 30. Or with the same technique, calculate the number of minutes/hours the program is in function. So when you exceed that time, you send a "END OF TRIAL PERIOD" message and exit.

But personally, I am disgusted by TRIAL VERSIONS of software. Avoid. Just release a DEMO instead with limited functionality is my advice.


Boiled Sweets(Posted 2007) [#15]
I use a demo version that has features removed. However I also use the b3dhelp library and go and get the date from an internet atomic clock ( ntp server ) . If it cannot talk to the clock or the clock reports a date later than a hard coded value then the program no longer runs :-)


Carolinaaa(Posted 2007) [#16]
Boiled, but where do you save the date of the first time running the program? do you save the initial date on a file into the same folder of the program (so uninstalling the software or deleting the folder would make that the user could reinstall it and use it again) or do you save it into a different folder (windows, etc)?


_33(Posted 2007) [#17]
I would override the file last modified date and use that as the install date.


Boiled Sweets(Posted 2007) [#18]
I don't save the date!

I have a pre coded fixed date when it stops working.


GfK(Posted 2007) [#19]
I don't save the date!

I have a pre coded fixed date when it stops working.

???

So somebody who downloaded your game while ago might get weeks of free use, whereas somebody else might get only a couple of hours/minutes?


Trader3564(Posted 2007) [#20]
Well, it could be done by serverside zipping all contents, and add a file that contains a date.. but when one finds out, your game just got cracked.


Boiled Sweets(Posted 2007) [#21]
@gfx,

typically I use this technique for beta releases used during development and I want it to stop working on a certain date cos a new version is out...


GfK(Posted 2007) [#22]
Oh right - thought you were on about release versions.


bytecode77(Posted 2007) [#23]
you can do it the stupid way, or you can do in the _expensive_ way. teh stupid way, would be to create a file somewhere hidden in the windows directory and save the date there. this can be cracked easily, but it is not expensive.

ps: windows directory is gettable with systemproperties or something like that. it is not always c:\windows\


GfK(Posted 2007) [#24]
Vista will also probably throw a major eppy if something tries to add files to c:\windows. Which will kind of blow your cover.