Sign in to follow this  
ordered_disorder

Implementing a serial system for a game

Recommended Posts

I am in the final stages of completing my first independent game(100% self made), and I wanted to release a free time trial, with the innate ability to upgrade to the full version. Unfortunately for this game I don't have the time to do a proper study of cryptography, so I just want a simple system that will prevent the user from registering to a full version, and than making copies for his friends. The system I have in place generates a key from hardware and installation date nuances. The user then emails me this key, and I generate a hash from it, I send it back to the user, they input the hash(A-Z,0-9), the program internally checks if this hash matches the one it produces from the key, if so, the program unlocks all features. I 100% realize this won't stop 99% of crackers out there, but I don't at this time have the resources to bother with them. What do you all think of this system?

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Honestly, you don't need to worry about this. You're not going to generate enough sales to warrent the time invested. Heck there are big games being released with no protection, and they're getting increased sales because of it. I believe it's Galactic Civilizations, but I could be wrong.

Share this post


Link to post
Share on other sites
That system will be broken in a few minutes because the program generates the registration key itself in order to check it.
A better bet would be a tool like EXECryptor(never used it, it's just an example) that handles everything for you. At $185 for the professional version, it's not very costly (if it works at all well) compared to the money it might potentially help you make. On the other hand, the same company offers HardKey for the same price and it seems to do somewhat the same thing, so who knows which you should purchase

Share this post


Link to post
Share on other sites
ExeCryptor is a good protection scheme, but it's expensive. Themida was a great (high-end) choice until recently, when they were forced to pull their kernel protections. It's still worth looking at though.

If you're looking for something more reasonably priced, Armadillo is very popular, but it hasn't been updated (positively) for a very long time, and even when it was new it was reasonably easy to defeat. ASProtect is a great budget protector - it is still causing major headaches within the cracking community.
Free, but far less reliable 'protections' include UPX, Yoda's PE Packer and ASPack (these pack your PE but don't offer any anti-debug or anti-dump).

Whatever you do though, don't be tempted to write your own protection unless you really know what you're doing. I've reverse-engineered many cases where some poor programmer has toiled his months away at an 'elegant' protection that suffers from the same flaws as so many before him, rendering his work almost worthless.

To be honest, if your app is desirable, it will be cracked no matter what you do. The months/weeks/days/hours saved by implementing a protection probably won't outweigh the extra work/money put into it. The debate is as old as the hills, but the general concensus is that it's not worth protecting your work unless you have very good reason to and you're prepared to designate a hell of a lot of (sustainable) resources to the cause.

Regards
Admiral

Share this post


Link to post
Share on other sites
I have found that polluting the internet and P2P networks with almost-working versions (that crashes after 5 minutes or subtly corrupts saved games, for example) disguised as cracked versions makes it difficult for people to find a real cracked version of your game, even if your game is unprotected.

Having to search through 30 invalid cracks just to find the right one is bound to deter all but the most determined people.

Share this post


Link to post
Share on other sites

Quote:

I have found that polluting the internet and P2P networks with almost-working versions (that crashes after 5 minutes or subtly corrupts saved games, for example) disguised as cracked versions makes it difficult for people to find a real cracked version of your game, even if your game is unprotected.

Having to search through 30 invalid cracks just to find the right one is bound to deter all but the most determined people.


Hey that actually sounds like a good plan, instead of releasing just a full version of the game, you make 1 good version and 20 with bugs, then put that in the P2P networks. Granted, it won't stop everybody but it'll stop many of them, forcing people to buy the real one. Brilliant.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Quote:
Original post by TheAdmiral
ExeCryptor is a good protection scheme, but it's expensive. Themida was a great (high-end) choice until recently, when they were forced to pull their kernel protections. It's still worth looking at though.

If you're looking for something more reasonably priced, Armadillo is very popular, but it hasn't been updated (positively) for a very long time, and even when it was new it was reasonably easy to defeat. ASProtect is a great budget protector - it is still causing major headaches within the cracking community.
Free, but far less reliable 'protections' include UPX, Yoda's PE Packer and ASPack (these pack your PE but don't offer any anti-debug or anti-dump).

Whatever you do though, don't be tempted to write your own protection unless you really know what you're doing. I've reverse-engineered many cases where some poor programmer has toiled his months away at an 'elegant' protection that suffers from the same flaws as so many before him, rendering his work almost worthless.

To be honest, if your app is desirable, it will be cracked no matter what you do. The months/weeks/days/hours saved by implementing a protection probably won't outweigh the extra work/money put into it. The debate is as old as the hills, but the general concensus is that it's not worth protecting your work unless you have very good reason to and you're prepared to designate a hell of a lot of (sustainable) resources to the cause.

Regards
Admiral



Armadillo, Themida and other protectors are cracked. AsProtect is cracked the same day a new build appears.

EXECryptor is a bit expensive, it slow down the performance, thee are some compatibility problems, but its version launched 2 years ago is NOT cracked.

I choosed it because it meets the main need - to protect an app from crack, and EXECryptor really does it.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I would opt for a much simpler method, which is the method uses by the developers of Prof. Fizzwizzle:

Don't distribute the full version. Make a special demo version that cannot be turned into a full version. Only include ressources that are needed in the demo and remove some bit of code (e.g. AI-code of enemys that don't appear in the demo, this can probably be done with just a few #ifdefs).

If users register, supply them with a unique url where the can download the full game with no protection whatsoever.
If you want you can "watermark" each full version to pinpoint those who distribute your game in P2P networks, or you can just claim you do :). But i wouldn't bother with that.
I think, that a nice sign on the title screen saying: "This game is licenced to $REAL_NAME$" will put up a nice psychological barrier.

Pros:
- implementation costs are likely to be less than fitting a protector to your game
- no compatibility issues. Most protectors use very nasty tricks to keep the cracker out of you exe. These tricks cause all sorts of problems and I expect that the upcoming Windows Vista will cause trouble for quite a few protectors.
- no extra licence fees for a protector
- you save bandwidth and don't distribute your full game to people that use a keygen anyway

Cons:
- you need to maintain two versions of the game
- your game will end up in P2P networks nevertheless

Keep in mind: there is no perfect protection, don't spend too much time looking for one. Your game will get copied no matter what you try to do. Look for the method that has the best cost-benefit ratio and stick with that.

Share this post


Link to post
Share on other sites
Quote:
Original post by Anonymous Poster
I would opt for a much simpler method, which is the method uses by the developers of Prof. Fizzwizzle:

Don't distribute the full version. Make a special demo version that cannot be turned into a full version. Only include ressources that are needed in the demo and remove some bit of code (e.g. AI-code of enemys that don't appear in the demo, this can probably be done with just a few #ifdefs).

If users register, supply them with a unique url where the can download the full game with no protection whatsoever.
If you want you can "watermark" each full version to pinpoint those who distribute your game in P2P networks, or you can just claim you do :). But i wouldn't bother with that.
I think, that a nice sign on the title screen saying: "This game is licenced to $REAL_NAME$" will put up a nice psychological barrier.

Pros:
- implementation costs are likely to be less than fitting a protector to your game
- no compatibility issues. Most protectors use very nasty tricks to keep the cracker out of you exe. These tricks cause all sorts of problems and I expect that the upcoming Windows Vista will cause trouble for quite a few protectors.
- no extra licence fees for a protector
- you save bandwidth and don't distribute your full game to people that use a keygen anyway

Cons:
- you need to maintain two versions of the game
- your game will end up in P2P networks nevertheless

Keep in mind: there is no perfect protection, don't spend too much time looking for one. Your game will get copied no matter what you try to do. Look for the method that has the best cost-benefit ratio and stick with that.


Fantastic Advice, I really appreciate your time to post this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this