Copy protection system

Started by
39 comments, last by DividedByZero 10 years, 2 months ago
I think you should take measures to protect the game. Maybe not super measures, as even with those measures, you can be hacked.

I don't know about how to actually set up security but I have downloaded a lot of software.

In terms of hacking, think about the hacker as a thief who wants to break into you house and steal your stuff. Or you can think of them as roaches that want to invade your house and eat your snacks.

A thief has to have an entry and exit point. You can't seal off all entry and exit points because you yourself have to get in and out. So, say you have a key. Well, we know keys can be regenerated.

Now, say you have a face scanning technology, that only allows people with the correct face ID to enter. Spiffy.

I think a better way is to assume people will enter, and just confuse the heck out of em by controlling the paths they are able to take. When roaches see raid, they have to go around it. Haha. But you can go right through it.

I think of keys in the way I used to when writing secret code. Keep the key on paper which translates the mumbo jumbo into their actual meanings. Paper can only be hacked if the hacker actually breaks into your house.

Thinking in terms of "thieves" will help you to come up with better solution on how to prevent theft.

One more thing, grey hat hackers are usually called unethical or ethical depending in the situation.

You can hack your own house to prevent hackers can't you? Can't you give a virus a virus? (Independence Day). Haha.

They call me the Tutorial Doctor.

Advertisement

Here are some rules of thumb:

1. You have the perfect copy protection, nobody can break:

Pirates will just ignore your game and play one of the other 300 games currently available... but they will for sure not buy yours.

2. You have an imperfect copy protection:

First victims will be the honest buyers who have trouble running your game... they will rage at you in different forums and other channels.

3. You provides defect,fake pirate copies:

Just bad PR, many people will just blame your game for being too hard, too bad, too buggy and this rumors will spread and kill your reputation.

4. You out-smart the pirates:

Haha... that would be funny, pirates will zero in on you and your game. Prepare for some cyber-mobbing, trolling, raging.. it is always bad to fight 1 vs large internet community.

5. You dont have any copy protection at all:

Pirates will happily distribute your game, for free... ok, lost sales from people who just wouldnt buy your game at all, but free PR. There're game expansions which sold more units than the mandatory core-game, so free PR works.

On the other hand, honest buyers will just have less stress due to an missing imperfect copy protetion and more fun due to investment into developing your game instead on coding and maintaining a copy protection.... win-win smile.png

My suggestion would be to implement some basic copy protection that simply informs the user that they need to purchase more licenses if they are running too many copies. It doesn't need to prevent them running the software. It will probably need to call home to a server to do this, so it could also report data back to you so you can work out how much piracy there is. The idea behind this is to reduce casual or unintentional piracy. It won't stop a determined pirate.

However you need to make sure that it's not going to annoy legitimate users. This depends somewhat on who will be buying your dll and how it will be used.

Just embedding an ID in each DLL downloaded is probably a bad plan. For example lets say a company decides to buy a copy of the DLL for each of it's 100 employees. Do you think they want the hassle of re-downloading it for each one of them, and then distributing them internally? However when the company gets some new employees it should inform them that they need to buy more licenses.

If you manage to install software on a user's computer, have it call home, and delete or modify files on the user's computer under remote instruction without the user's permissions you have committed a criminal act in many jurisdictions and immoral act in all of them.

So... license validation is illegal and immoral? Software updates are illegal and immoral? Copyright protection is illegal and immoral?

I would argue that illiteracy is a problem.

There's nothing immoral about license validation, there's nothing wrong with an application phoning home to validate authenticity and allow a program to continue, as long as the user has been made aware that personal information is being transmitted over the unprotected public communications systems. Neither of those actions violate the user's privacy or threaten the integrity of their data. A trojan virus that surreptitiously modifies the contents of a person's hard drive is immoral, regardless of the intentions of the person who propagates that virus.

Software updates are run with the user's permissions, they do not match the conditions I stated above. Copyright protection is entirely irrelevant to this discussion, unless there is a surveillance program that scans your drive for illicit source code and removes it extrajudicially. I imagine such shakedowns would be quite profitable if it were legal, since the definition of 'illicit' would be pretty fluid without the usual legal safeguards. Better pay up, we wouldn't want any 'accidents' to happen.

It doesn't matter if a user has obtained a copy of your software through uncontrolled markets, it is immoral for a third party to attempt to change or modify the contents of a user's hard drive (or other storage media) remotely and without the user's consent. It is the same for any other good: if you suspect someone has stolen your television, you do not have the right to break in to their home and remove whatever you want. A person's data is sacrosanct and you do not have any rights to it no matter how much potential revenue you might not earn by not having those rights.

The OP is talking about selling software, which no doubt would come with reasonable terms and conditions. The buyer would be aware of any 'phone home' checks in place.

The OP is talking about getting software installed on a user's computer such that they can remotely exploit it. There was nothing in his post about posting a warning and obtaining consent that such a trojan virus has been installed and will modify or destroy the contents of their hard drive. If that was the case, he should have said it explicitly. What he did say explicitly is "the DLL communicates back to a server to see if it is 'valid'. Ie. kill the leaked DLL's" which to me sounds like delete files, since 'kill' is a synonym for 'delete'. Of course, it would only be a problem for the people who had installed the software and not paid the protection money, not 'the buyer'.

Stephen M. Webb
Professional Free Software Developer


I am wondering, should I also add an internal 'kill switch', so the DLL communicates back to a server to see if it is 'valid'. Ie. kill the leaked DLL's?

If you manage to install software on a user's computer, have it call home, and delete or modify files on the user's computer under remote instruction without the user's permissions you have committed a criminal act in many jurisdictions and immoral act in all of them.

Not at all, there would be no modifications to the file system at all.

It would communicate to the server > ask if vaild > if response==false > don't operate.

Simple..

[edit]

To clear things up. It wouldn't be a criminal act if the user obtained the software illegally in the first place?

I'd love to see that stand up in court. "I downloaded this i'llegal software but it won't run on my machine". "Err, I want my money back?".

Your game only works online? Not buying it. As stated in other threads, I'd put forth the effort to crack the game just because I want to play where I want to play with the game that I bought, not adhere to inconvenient rules that are aimed at people other than me. It is a trivial step for someone less scrupulous to then give a copy to a friend in order to spare them the frustration, then it spreads like wildfire.

I was thinking... If you want to go the non-intrusive way and more or less communicate to the user that you're a human too (ie, not a big corporate monster) you could try to set up a system that can detect if the copy is pirated or not, after that just nag the user:

"We worked hard to bring you this game. W would really like to keep working on new games for all of you, so we insist, please buy the game! It helps us to keep the ship from sinking, and it helps you to get more awesome games made by us!"

Or something along those lines, kinda passive-agressive but "humane" enough that the user will feel it biggrin.png

The thing still lets the user play it, like a full game. If its just a message like that (say, in the background of the main menu or something) I doubt any hacker would "waste" their time into removing it and releasing a cracked version that the only noteworthy feature it would have is the lack of the message.

There is no big copy protection, no impenetrable wall to break down, without any challenge. Just a message. That'd steer off the big amount of hackers who are in for that kind of thrill of hacking the new thing.

EDIT: The point is, empathy is a powerful thing. The thing that allows anyone (without a mental disorder that is) to "steal" any software is the lack of connection to it. Pirates are totally detached from what they're really doing. Try to reach them not as filthy pirates, not as potential consumers, but just as plain people. That's what gets people going, that's what gets some gamers to say "I'll buy this to support the industry!", I've seen those kind of comments and I believe its a natural reaction to gaining a bit of empathy.

Also, peer pressure is also a powerful thing. Get enough people into the "I will support this!" bandwagon and soon many more will follow.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

What he did say explicitly is "the DLL communicates back to a server to see if it is 'valid'. Ie. kill the leaked DLL's" which to me sounds like delete files, since 'kill' is a synonym for 'delete'.

Kill is also a synonym for;

turn off, switch off, stop, stop working, shut off, shut down, cut, cut out, deactivate.

I have never mentioned the intention to delete anthing from anyones hard disk.

Your game only works online? Not buying it.

Someone hasn't been reading...

This is not a game, not does it require internet to use it.

The thinking was for the library to 'phone home' if the opportunity arose. If the user is not connected to the internet (when using this), no problem. It only becomes a bit of a problem for the users this is distributed to. It is hard to tell everyone not to connect to the internet when using this.

A perfect solution? Far from it. Slow the spread and cause disruption to pirate users. Absolutely. (Until someone cracks the DLL).

So you are making a DLL, presumably for developers to use, and want some kind of copy protection?

My first thought is "forget it".

As a buyer of many libraries (or actually persuader of boss to buy libraries) I can safely say that I would never even consider buying any library that doesn't come with full source code. A binary only DLL that "phones home" or something like that is completely out of the question. Always.

Edit:

Reading the first post again, you are planning to sell your DLL for about $10-$20. Have you really thought this through? How many are you likely to sell? If the library is useful, you can sell it for many times that price. My boss easily pays $1000 for a library without blinking, if I say I need it.

Thanks Wack, some very good points there.

So the libraries you get have full source code also? I didn't know this was commonplace. This is my first library that I am planning to release though. So, all advice is awesome.

With the full source option. What would stop you from changing a few lines and then selling it off as your own?

Out of interest where do you purchase your libs from? Is there some sort of marketplace out on the net?

Thanks again for your input so far guys. :)

So the libraries you get have full source code also? I didn't know this was commonplace.

Often, middleware vendors will have two different tiers of licencing - a cheap "closed source" option, where you just get dlls/libs/etc and an expensive source-included option. Large developers generally always go for the source-included options and won't buy anything closed source.
Smaller developers who don't have much money will settle for the closed source option out of necessity.

With the full source option. What would stop you from changing a few lines and then selling it off as your own?

It would be copyright infringement. You've got the same issue with a closed-source option. What's to stop someone embedding your DLL in their product and selling it off as their own (or from decompiling your DLL, removing your copy-protection measures, then repackaging it as their own product)?

Out of interest where do you purchase your libs from? Is there some sort of marketplace out on the net?

Game middleware libraries are spread out all over the net, relying on their own marketing, e.g.
http://www.radgametools.com/

http://www.fmod.org/

https://www.audiokinetic.com/products/

http://gameware.autodesk.com/scaleform

http://www.coherent.com/

http://www.havok.com/products

http://www.xaitment.com/

http://sundog-soft.com/sds/features/

http://www.carx-tech.com/products-car-physics-engine-eng

http://www.speedtree.com/

This topic is closed to new replies.

Advertisement