PDA

View Full Version : Help- "Time Bomb" Code Needed


NotaNovice
07-11-2006, 09:37 PM
HI. I created some software which incorporates elements of flash and has output in HTML. Can anyone please share a code to incorporate a timer or key on my software product? I would like to provide demos of my software product to people (both via the web and through CD-ROMS) but only if these can be set for a certain time (say 7 days, 14 days, 1 year, etc.). Hence I would like for people to have access to the software for a limited amount of time/ license. Any suggestions? Thanks.

paulq
07-17-2006, 08:21 PM
Well, just keep in mind that ALL software protection can be cracked. That means don't waste too much time & money trying to make your shareware inpenetrable, because someone determined enough can and will crack it.

Second, my suggestions are as follows:

The typical "time trial" program relies on hidden registry keys or hidden files to hold some data such as the expiration date. On startup (and possibly periodically during your program execution for extra security) your program will check to make sure that the date in the hidden file\hidden registry key is greater than the date of the computer (system clock). If it is, allow program execution with a nag screen reminding them of how many days left for use and how they can register it properly. If the hidden date is equal to or less than that of the system clock, tell the user time is up and that they must register, then halt execution.

Keep in mind that programs such as API spys, RegMon and FileMon (www.sysinternals.com) can hook into your application and tell the user what files and registry keys are being accessed by your program in real-time so it would be best to create some kind of file (perhaps encrypted) containing the end date that must exist and in a correct format in order for your program to run. This would prevent a user from simply deleting or manipulating the hidden file or registry key.

As I said, any pro will crack your software in less than an hour or so, so don't make that your only means of protecting your assets.

You could create a demo version of your program that only contains limited functionality if you are truly concerned about your users abusing the EULA license.

There is some software that can help protect your software from novice crackers such as ASProtect however, as I said, any pro will have already a knowledge of how to beat this protection.

I hope some of this helped and please let me know if you need any more information, I'd be happy to help.

NotaNovice
07-24-2006, 09:02 PM
Thanks, Paulq! Might you know of any software that produces trialswares or demos? This is a flash-based program with HTML output that I've created. Indeed I am concerned about possible security breeches. I wouldn't mind someone just having access my program (through my server) once and only once, as per download, if possible.

paulq
07-25-2006, 08:50 PM
What language are your writing your program in? Flash? I don't know of any programs that would convert your program a demo by limiting the functionality of your program and I don't think it is really possible. You would have to do it yourself; create two different versions, one registered version, fully functional, and one demo version, missing the code that you don't want your demo users to have access to.

The thing about cracking software is that if your CPU can run the program, then a skilled reverse engineer will be able to do the same and understand all aspects of what your program does in time and even make changes to it to make it run how they want it to (i.e. run as a registered user illegally).

If you are generating a standard Win32 EXE, ASProtect is one program that can take your finished executable program, pack the machine code (makes it not human readable) and also adds some nice features like anti-debugging (detects SoftIce and OllyDbg and halts execution if found). This adds some security but anything ASProtect does to encrypt your code must be undone before the CPU can read it. Therefore any skilled cracker will be able undo what programs like ASProtect to do protect your program and crack your software.

So basically my point is that if you give anyone your full executable code, no matter what language it is in, and no matter if you turn off certain functionality, and only if you allow them to download it once...once they have the code they can do anything they want with it. That means they can turn on what you turned off and they can turn off any time bomb code you turn on.

So again, my advice is if you truly want to make sure you minimize theft of your software you should make a full version of your software for registered users and a demo version that does not have any code for the registered features compiled with it.

Also, even with the different demo\registered versions you will have to worry about registered users "sharing" their registered copy.