crack and hack protection

Started by
1 comment, last by GameDev.net 19 years, 4 months ago
Hi My current c++ skils are non exitent... well I can do very basic console stuff, I am very experianced with VB but all my projects have been internal things, or for one site places, so I would lock them with very basic protection such as check the registry for a value. I dont tell people what value, although I am sure it is easy to check and crack. I want to make a publically available product and have basic version and pro version, I have not decided to make it available in same program and limit through some method, but I would rather do some serious protection against hacks and cracks, limit it to one pc, and also I program using .net and I heard that it is easy to crack using a program that comes with it. this program will be very network intensive sending out stuff almost every 5 seconds, I was wondering how do I encrypt the stream? (this is not nesicarry but it would be nice) anyway, I have no idea on this subject and would appreciate any feedback anyone could please give me. Thanks
>wilhil<
Advertisement
Generally, such limited and full versioning is done with a key which is mathematically hard to create without knowing another key that you have. The key is then saved to registry or where-ever to have your program check it [with a well known algorithm].

If I'm not mistaken, there are companies dedicated to this which you might be able to enlist to help you.
The best practice is NOT to use hidden registry values, doing so will definatly compromise your app easily. For instance such an app might be considered malware since it is accessing the registry in a bad way. Also leaving dangling keys after uninstall is very bad.

You cant prevent a crack for your app. instead you can try to prevent casual copying. Try to generate a machine id like microsoft does so you can personalize the serial for the app. This at least prevents someone from just giving his friend the serial and the app. though be prepared for ppl who may change their hardware and give you complaints that their key dont work anymore.

you could go a step further and try what valve does with steam. You need to be logged into an authetication server which make sure the key is valid. You can limit the number of simulantous logins to one, thus prevent concurrent sharing of the app.

So a user with 3 pcs could only run the app on one pc at any given time. This allows you to kill any keys that seem to be used by more then one person, assuming your careful you can weed out only the ppl trying to use copies illegally. Though this system requires you to have an authetication server you indeed to keep up for a long time, and requires that you eventually release a patch that would disable the copy protection when you take the authetication servers down.

That system can be cracked to, though more difficult and your app would have to be worthwhile enough to spend the time to crack.

Personally i suggest not worrying to much about this and worry more about coding and getting working apps. you should actually be proud if someone cracks your app, it means you made something useful enough to warrent the effort. Because unless your willing to spend money on a commercial system (which are used in games and all have been compromised) you wont make things much better and waste development time doing something that wont be worthwhile unless you understand clearly how things work. First learn c++ well enough to code what you want, then go for protection.

Heck invasive protection like steam are actually causing valve to lose some sales, many ppl also have problems with many cd based protections as well (some drives cant read the malformed disks).

One final system you could consider is a dongle, basically a divce which you attach to the usb port that can authenticate the app in some way (decrypt files, check the key, etc).

you can encrypt the stream using any encryption scheme you want, best bet is pgp which uses two keys, public and private. you then need to figure a way to exchange keys safly (look up the ssh protocal and they do key exchange, also ssl).

What does you app do?

This topic is closed to new replies.

Advertisement