• Create Account

Copy protection system

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

40 replies to this topic

#1DarkRonin  Members

1081
Like
1Likes
Like

Posted 05 March 2014 - 06:04 PM

Hi Guys,

Just wondering if I could run some thoughts by you.

I am about to release a DLL for a target client base and obviously you get people who will distribute this amongst dodgy channels.

I have setup my site to provide download links via user accounts and each dll is serialed in some way internally. So, I'll be able to track the source of the Buccanneer (Pirate gag )

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?

I was thinking of doing this in an unitrusive fashion, so if the DLL is not connected to the internet then it will continue working. But if it is connected and deemed 'not valid' the DLL will fail. Obviously, I want to do this in a way that is 100% non-intrusive to the end 'legit' user.

Although this method isnt perfect, it should slow down the piracy rate. And yes, if someone really wants to they can crack the DLL.

I just dont want the 100's of hours I have put into this go down the drain (being a solo dev). I am sure you'd understand

I also don't want to charge alot for my work, thinking around the $10-$20 region. I could charge more, but that is not who I am. I want people to enjoy the DLL as much as I have enjoyed making it. And so far the feedback from the 'target' has been awesome.

Win32 Developer
One Of Them - Martial arts game that is mid development.

#2frob  Moderators

41391
Like
18Likes
Like

Posted 05 March 2014 - 06:10 PM

POPULAR

Businesses invest billions of dollars every year for systems that are only effective for two or three weeks. Some require license servers, some require dongles, some require physical disks, some require license keys, all are defeated quickly. The only effective solution is to run it on your own servers.

Assuming your game is popular enough that anyone would want to steal it, your little secret will be discovered and become freely available online.

Spend your valuable development time actually developing the game.

Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I occasionally write about assorted stuff.

#3DarkRonin  Members

1081
Like
0Likes
Like

Posted 05 March 2014 - 06:14 PM

Businesses invest billions of dollars every year for systems that are only effective for two or three weeks. Some require license servers, some require dongles, some require physical disks, some require license keys, all are defeated quickly. The only effective solution is to run it on your own servers.

Assuming your game is popular enough that anyone would want to steal it, your little secret will be discovered and become freely available online.

Spend your valuable development time actually developing the game.

Hmmm true. I know what you mean. Probably better to cater for the 'true users' rather than spending time, money, and effort staving off the dodgy ones.

Edited by lonewolff, 05 March 2014 - 06:15 PM.

Win32 Developer
One Of Them - Martial arts game that is mid development.

#4Alessio1989  Members

4385
Like
5Likes
Like

Posted 05 March 2014 - 09:17 PM

POPULAR

Except a very few cases, DRMs are only a waste of time and money (especially for video-games) and a deterrent to purchase a product.

It's better you invest your resources into your product quality, plus a decent price, good support and updates (maybe adding some little free stuffs) will reward you better than any DRM.

Edited by Alessio1989, 05 March 2014 - 09:18 PM.

"Recursion is the first step towards madness." - "Skeggǫld, Skálmǫld, Skildir ro Klofnir!"
Direct3D 12 quick reference: https://github.com/alessiot89/D3D12QuickRef/

#5Strewya  Members

2607
Like
1Likes
Like

Posted 06 March 2014 - 05:16 AM

I think frequent updates are the best way to make your legit users happy, and make the pirates wish they didn't have to download yet another version because a new update was released. Especially if the update includes changes to a lot of files, which would make the pirates download the entire thing. Again. Worked against me

Just an idea here.

devstropo.blogspot.com - Random stuff about my gamedev hobby

#6Isaac Paul  Members

213
Like
2Likes
Like

Posted 06 March 2014 - 07:12 AM

If you really want to add anti-piracy:

Release a purposefully 'cracked' and 'buggy' version of your dll to pirate websites (high-cpu usage, frequent crashes, ect). Several versions infact, make them seem as legit as possible. You can even add a time delay to make it seem like it works perfectly at first. Having an already released 'cracked' version of you software will also deter crackers from actually cracking it too since they think its already been done and if they do crack it.. it will be just be mixed in with your version.

This should really frustrate the pirate community. Though, I'm not sure if that will result in more sales for you

Edited by izackp, 06 March 2014 - 07:14 AM.

#7mark ds  Members

1739
Like
-2Likes
Like

Posted 06 March 2014 - 08:01 AM

You could embed a separate, unique 128-bit GUID in each individual DLL and assign it to each legitimate customer. Each time a user connects, transmit that GUID and make sure that no one else is current using it. If a second connection is made with the same GUID, disconnect them. This way, although you may have 10,000 pirated versions, only one can connect at a time. Whomever is distributing the software will soon learn when they can't connect...

Edited by mark ds, 06 March 2014 - 08:03 AM.

#8Ectara  Members

3097
Like
3Likes
Like

Posted 06 March 2014 - 08:42 AM

You could embed a separate, unique 128-bit GUID in each individual DLL and assign it to each legitimate customer. Each time a user connects, transmit that GUID and make sure that no one else is current using it. If a second connection is made with the same GUID, disconnect them. This way, although you may have 10,000 pirated versions, only one can connect at a time. Whomever is distributing the software will soon learn when they can't connect...

Sounds like that, too, would be cracked, by someone who figures it out, and replaces that code with either one that brute force increments the GUID until it finds one that is accepted, or generates one from your own machine that is unlikely to collide with anyone else's.

#9mark ds  Members

1739
Like
0Likes
Like

Posted 06 March 2014 - 08:45 AM

Sounds like that, too, would be cracked, by someone who figures it out, and replaces that code with either one that brute force increments the GUID until it finds one that is accepted, or generates one from your own machine that is unlikely to collide with anyone else's.

But the server would contain a list of valid GUIDs to compare against - one for each customer. And the chances of 'guessing' a correct one would be unfeasible, there are 5.3×1036 combinations!

Edited by mark ds, 06 March 2014 - 08:47 AM.

#10Waterlimon  Members

4373
Like
1Likes
Like

Posted 06 March 2014 - 08:51 AM

You could add something to have the username of the person appear on the legit products. That will make pirates feel bad whenever they see the name of the first pirate on their pirate product >:3

o3o

#11Rattrap  Members

3115
Like
4Likes
Like

Posted 06 March 2014 - 09:59 AM

If you really want to add anti-piracy:

Release a purposefully 'cracked' and 'buggy' version of your dll to pirate websites (high-cpu usage, frequent crashes, ect). Several versions infact, make them seem as legit as possible. You can even add a time delay to make it seem like it works perfectly at first. Having an already released 'cracked' version of you software will also deter crackers from actually cracking it too since they think its already been done and if they do crack it.. it will be just be mixed in with your version.

This should really frustrate the pirate community. Though, I'm not sure if that will result in more sales for you

Serious Sam 3 did this - Made unbeatable monster show up

Game Dev Tycoon did this - Probably the funniest, where eventually people would pirate your games to the point where you couldn't play anymore.  Someone ironically posted to one of the forums and asked if there was some kind of DRM that could be researched that would prevent this

One of the Crysis games did this.  It replaced your bullets with chickens that didn't do damange.

"I can't believe I'm defending logic to a turing machine." - Kent Woolworth [Other Space]

#12Stainless  Members

1875
Like
4Likes
Like

Posted 06 March 2014 - 10:02 AM

I would get a copy of the game from whatever shop had it in stock, remove the copy protection, and then split the game up into modules.

Removing the copy protection took on average 20 minutes. One game did take me four days, but the average was a few minutes.

Commercial copy protection systems were the easiest to get rid of as the technology only had to be understood once.

When I worked at Gremlin Graphics, Fungus The Bogeyman did once add a string to one of his games. He left "Hacked by Fungus" and his phone number in the game image.

About two weeks after release, someone called up to say "Thanks for hacking the game"

#13DarkRonin  Members

1081
Like
1Likes
Like

Posted 06 March 2014 - 02:46 PM

You could add something to have the username of the person appear on the legit products. That will make pirates feel bad whenever they see the name of the first pirate on their pirate product >:3

I was actually thinking of something along these lines. More or less a name and shame, have the details of the initial leak plastered all over the screen.

If you really want to add anti-piracy:

Release a purposefully 'cracked' and 'buggy' version of your dll to pirate websites (high-cpu usage, frequent crashes, ect). Several versions infact, make them seem as legit as possible. You can even add a time delay to make it seem like it works perfectly at first. Having an already released 'cracked' version of you software will also deter crackers from actually cracking it too since they think its already been done and if they do crack it.. it will be just be mixed in with your version.

This should really frustrate the pirate community. Though, I'm not sure if that will result in more sales for you

I heard of an instance where on company did this and the reviewers got a hold of the 'dodgy' version and the program was reviewed on the faulty merits. This apparently killed sales as the reviewers said 'dont buy it'.

Win32 Developer
One Of Them - Martial arts game that is mid development.

#14Bregma  Members

8322
Like
0Likes
Like

Posted 06 March 2014 - 05:34 PM

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.

Stephen M. Webb
Professional Free Software Developer

#15DarkRonin  Members

1081
Like
0Likes
Like

Posted 06 March 2014 - 05:39 PM

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..

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?".

Edited by lonewolff, 06 March 2014 - 05:42 PM.

Win32 Developer
One Of Them - Martial arts game that is mid development.

#16mark ds  Members

1739
Like
1Likes
Like

Posted 06 March 2014 - 06:18 PM

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?

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.

#17DarkRonin  Members

1081
Like
0Likes
Like

Posted 06 March 2014 - 06:27 PM

Even if the file was programmed to delete itself from the users hard disk if it was detected to be illegal, does 'ownership' of the illegal file then pass to the pirate just because it is resident on the hard disk?

Microsoft would be screwed if this were the case with all of those Windows 8 Trial copies on peoples computers that will 'blue screen of death' when the trial period is over. It is a case of trial is over, therefore access is over.

Win32 Developer
One Of Them - Martial arts game that is mid development.

#18Norman Barrows  Members

6339
Like
0Likes
Like

Posted 06 March 2014 - 09:53 PM

it depends on the popularity of the product.

my most popular game got hacked. losses were so bad i had to fold the company.

frequent major updates are all fine and good, but not really feasable for a large game (like skyrim or any other large fps type game).

in your case its a dll.  a library.  tech support and updates are your best anti piracy tools.  but  DRM never hurt.

this may be of help:

http://www.gamedev.net/blog/1729/entry-2258666-anti-crack-info/

Norm Barrows

Rockland Software Productions

"Building PC games since 1989"

rocklandsoftware.net

PLAY CAVEMAN NOW!

http://rocklandsoftware.net/beta.php

#19Pink Horror  Members

2459
Like
3Likes
Like

Posted 06 March 2014 - 10:26 PM

Sounds like that, too, would be cracked, by someone who figures it out, and replaces that code with either one that brute force increments the GUID until it finds one that is accepted, or generates one from your own machine that is unlikely to collide with anyone else's.

As long as the hypothetical hacker is replacing code, he might as well completely remove the part that checks with the server in the first place.

#20DarkRonin  Members

1081
Like
0Likes
Like

Posted 06 March 2014 - 10:49 PM

my most popular game got hacked. losses were so bad i had to fold the company.

Man, that is terrible. Proof of what can happen to a good product.

If my library takes off as well as I think it will, I am sure that it will be hacked in no time. That is my biggest worry.

So, I have no idea what I should do to protect my IP in this case.

Win32 Developer
One Of Them - Martial arts game that is mid development.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.