Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

NE1

Application Reregistration

This topic is 5886 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey there, my problem is that my boss came to me at work and he wanted to know if i can make the application we''re working on - stop working after a year ( so the users would have to Reregister the software with the compnay ). I have certain ideas but all of them can be ''cracked''... So i guess i am asking how can i go about doing that ( time/date verification ) in a way that would be hard to crack. I realize that any software can be ''cracked'' but this software we''re working on is just a simple application that accepts data from the user and transform the data to a predefined structured file - nothing fancy just some corporations must have this sort of software. My boss'' idea is that the users would be sort of like members of a club where they would have to Reregister each year in order to use the software. I hope my question is clear enough... Any suggestion would be greatly appreciated.

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Well the best Idea I can think of on this subject is to distribute a "licence file" with each copy of the software. The licence file would be required to "run'' the application. It could contain a bunch of misc data such as the name of the company and person who registered it, and it would contain the date of the licence. Your application would read this file and view the date, then check to see if a year has passed and then exit with a message if it has. For security''s sake you could encrypt the file using PGP or something and have your application store the key so that it would be able to read in the licence file and no one else would.

Share this post


Link to post
Share on other sites
thanks for the quick response - but the problem i''m having is
checking the date. i mean every one can go to the ''date and
time properties'' dialog ( by double clicking the time on the
taskbar ) and change the date - thus avoiding the date/time
check of the software.

any thoughts on that?

Share this post


Link to post
Share on other sites
Just had a though - aren''t there some low-level functions which
i can use to access the the date on the BIOS?
After all - not many people tinker around with their BIOS ( not
the users our software will go to )...

Share this post


Link to post
Share on other sites
No, because Window''s time changes the amount of time in your bios. Your computer keeps track of the time in hardware, not in software.

Usually, this problem is solved by making sure the date hasn''t been ''rolled back'', and if it has, disabling the software imediatally. Its still not a fool proof solution, but it works.

So everytime the program starts up, record the time of start up, and then check to see if the date has been rolled back, and if so, disable the program by any means neccessary.

The only problem with this is hidding the files from a user, choose a place that where it won''t be deleted or easily found. And leave it on the computer even after an uninstall, to prevent someone from reinstalling the software after it expired

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Well you need to be a little smart about how you do this. For instance if your end user knows the program will expire after a year then they may set the clock back and there is little you can do about that. However in your licence file you can store extra data as I said, we know there are 365 days in a year..so each time your application starts it can check the "current date" stored in the licence file, compare it to what you get from the system and increment the counter. Once the counter hits 365 days the licence will expire. Granted this won''t help much if they keep setting their clock back. However you can also remedy this problem by using the current date in your application some how. For instance if this were a database application and the user kept setting his clock back to 9/10/02 because he knew it would expire on 9/11/02, all his data would be saved to the 9/10/02 date.

Share this post


Link to post
Share on other sites
Maybe you can sort of "hide" information in the windows registry? It''s so big...

How abbout "HKEY_WHATEVER\SOFTWARE\Microsoft\Paperclipguy\" or something?

Share this post


Link to post
Share on other sites
you could have stored in an encrypted file that has the last time the program was accessed as date and time down to the millisecond then if the next time the program is accessed, if the date is earlier then the last time accessed.... it will display a message saying that the internal clock has been tampered with and that you invalidated the licence.

c:/windows/aybabtu.bat

REM All your OS are belong to us!!
c:\what\you\say.txt
Move zig ..\forgreat\justice
Move everyzig

Share this post


Link to post
Share on other sites
I''d offer some solutions, but I think your boss is a buffoon. I personally can''t stand mandatory yearly software registration. If I''m gonna pay money for software, I better be getting more than what I had before for it (not just the "privilege" of using it).

Share this post


Link to post
Share on other sites
I''d have to agree with daerid in principle. Licensing software is BS. I don''t agree with having to renew a license for the exact same software. A maintenance agreement is a different story, although it should cost much less than the initial software and you should get free updates for a while regardless.

In any case, to answer your question I would recommend that you try the previously suggested idea of checking the date to see if it has been rolled back. If it has, delete a few key license files. People don''t ordinarily back them up. Also make a few entries in the Registry.

As you said, if someone is bound and determined to crack your software, then they will. But these are corporations you''re dealing with who are licensing it. The majority of them like to keep things legal and pay for the software. The other thing you can do is require a validation key that is requested from a central database on startup. It sends it''s registration code, does its thing, and then stores the license in memory. After 24 hours have passed, or when the program is shut off, it requests a new one.

This is a good solution, but it presents a world of other problems for you, like you need a dedicated database, you need a central registration server that doesn''t go down... ever. If your central server goes down, anyone trying to use the software can''t and personally, I''d be rather irritated.

I think your best bet is a rotating license file that changes every time it is run or every 24 hours, whichever comes first. I''m lucky if I remember the exact date of install a month later, let alone a year later. Just change the license file all the time, and make sure it is encrypted. It shouldn''t take you too long to come up with something decent.


Looking for an honest video game publisher? Visit www.gamethoughts.com

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!