Jump to content

  • Log In with Google      Sign In   
  • 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.

  • You cannot reply to this topic
40 replies to this topic

#1 DarkRonin   Members   -  Reputation: 616

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.

 

Thanks in advance :)



Sponsor:

#2 frob   Moderators   -  Reputation: 22732

Like
18Likes
Like

Posted 05 March 2014 - 06:10 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.

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 write about assorted stuff.


#3 DarkRonin   Members   -  Reputation: 616

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.


#4 Alessio1989   Members   -  Reputation: 2131

Like
5Likes
Like

Posted 05 March 2014 - 09:17 PM

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.

"Software does not run in a magical fairy aether powered by the fevered dreams of CS PhDs"


#5 Strewya   Members   -  Reputation: 1582

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 :P

But then again, some people have bandwidth caps for download, so you should make your updater efficient to only download deltas or something.

Just an idea here. :)


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


#6 Isaac Paul   Members   -  Reputation: 189

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 :P


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


#7 mark ds   Members   -  Reputation: 1481

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.


#8 Ectara   Crossbones+   -  Reputation: 3058

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.



#9 mark ds   Members   -  Reputation: 1481

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.


#10 Waterlimon   Crossbones+   -  Reputation: 2638

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


#11 Rattrap   Members   -  Reputation: 1788

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

 

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.



#12 Stainless   Members   -  Reputation: 1069

Like
4Likes
Like

Posted 06 March 2014 - 10:02 AM

I worked for a company called Freeloader. They had a business model of buying distribution rites for PC games, splitting them into downloadable modules, and giving them away.

 

Money came in from advertising.

 

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"



#13 DarkRonin   Members   -  Reputation: 616

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

 

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



#14 Bregma   Crossbones+   -  Reputation: 5441

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

#15 DarkRonin   Members   -  Reputation: 616

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

 

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


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


#16 mark ds   Members   -  Reputation: 1481

Like
0Likes
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.



#17 DarkRonin   Members   -  Reputation: 616

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.



#18 Norman Barrows   Crossbones+   -  Reputation: 2314

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

 

 


#19 Pink Horror   Members   -  Reputation: 1229

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.

#20 DarkRonin   Members   -  Reputation: 616

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

 

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.






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.



PARTNERS