Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Anti-piracy tactic #1

Discussion in 'Scripting' started by acriticalstrike, Sep 11, 2013.

  1. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    Alright so I've got this game thats close to completion and now I'd like to implement some anti-piracy features. Here's my plan. For each game copy I want a unique ID. The ID is hardcoded into the game program and also saved onto the device in an encrypted file. When the game runs it checks a server to ensure that the ID is not banned. If I go onto piracy networks like piratebay and download a pirated copy of my game, I can check that encrypted file, decrypt it and find out that games unique ID. Then I can go on my server and make sure that any games with that unique ID will not be allowed to play. This is my simple plan what do you think? How could I implement it and is there a better way? Thanks guys I hope to get some good input :-D
     
  2. gfoot

    gfoot

    Joined:
    Jan 5, 2011
    Posts:
    550
    Pirates will just hack your game to bypass the license check.
     
  3. surreal4224

    surreal4224

    Joined:
    Apr 10, 2011
    Posts:
    51
    I think that the probable work around to this is to patch so the game it doesnt go online to check IDs. WOW had a piracy issue of private networks popping up so players could play the game for free, just patching their game to use the other network instead of blizzards.

    chances are you would not be able to keep up with all unique keys a generator creates, unless you figure out its pattern.

    Some anti-piracy ideas I have is:
    >>ditch unique ids and go with online user accounts, so players login at launch of game (make a note on the db the ip address used to login, if the same login starts getting a lot of different ip addresses, delete the account)
    >>no-stand alone games, they are easiest to pirate, stick to mobile and web-player
    >>keep save files on your server, patches may popup here, so that save files are not uploaded to your server
    >>give them a bare bones game on initial install, game will go and temporarily retrieve needed resources to play that scene (Starcraft 2 does this)
     
  4. hpjohn

    hpjohn

    Joined:
    Aug 14, 2012
    Posts:
    2,102
    The problem I see now is that hacker groups will just figure out a way to spoof IDs, and you'll end up either banning genuine players whose IDs have been spoofed by others, or not ban any actual hacked IDs, because how can you track them all if they are spoofed by some installer at runtime
     
  5. iossif

    iossif

    Joined:
    Mar 4, 2011
    Posts:
    332
    anti-piracy tactic #1 should be:

    -) do not care about piracy

    there is no way to prevent it other than what blizzard does => require a steady connection to one of their servers and buy the game on an account of that server.
    everything else can be hacked => every minute you spend on useless anti-piracy is a minute you do not polish your game. not polishing your game will cost you customers.
     
  6. JamesLeeNZ

    JamesLeeNZ

    Joined:
    Nov 15, 2011
    Posts:
    5,618
    Anti-piracy tactic #1: Make your game free.
     
  7. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    Well the idea is that if I see a copy of my game in piratebay and I download it can ban that copy by decrypting its unique ID and adding it to the banned list on the server I feel like this should solve 99% of pirates btw I use AES encryption on the stored ID. I just need a way of binding an ID to each sold copy ....
     
  8. Julius.J

    Julius.J

    Joined:
    Jul 24, 2013
    Posts:
    33
    The best Anti-piracy tactic is to make the game super easy to hack! Then use several checking systems to change what happens in the game. I.E. Cretin mobs become way over powered and then tell the player not to hack. This way a hacker will crack your game, but it will be a little while tell they find out that your messing with them. Eventually a clean hack will come out, but hey It's way more fun and a good way to pick up advertising.
     
  9. Pip-Robbins

    Pip-Robbins

    Joined:
    Oct 19, 2010
    Posts:
    213
    It would still be fairly easy for someone to just decompile the code, skip the section which your client checks if its a banned copy.

    As everyone else suggests, I wouldn't worry about piracy, in fact being in a situation where piracy is even a issue means you would be doing well!
     
  10. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    You must consider code obfuscation I can make it very hard to read decompiled code and again this is for the average joe who uploads the installer ( I'm talking mobile devices here ) to the pirate bay this tactic will stop that... and that's really what matters
     
  11. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    So no one has any thoughts about how to keep pirates from pirating their games?? Again my simple plan is:

    Lets consider that each sold copy of my game has a unique ID coded in the installer.
    Each time the game runs it checks a SQL server, if the ID matches one on the server the game will not play.
    If i search on piracy networks as I often do and I see my game, i download it check its ID and add it to the banned list on my SQL server....
    99% of pirates are stopped

    :idea: So any of you developers have ideas/comments/suggestions?
     
  12. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,572
    The hacker groups will remove the anti-pirate code from their version of the game. The piratebay version WON'T check your server, they WON'T have a registered ID, and they will crack the game every single time; no matter what you put it to try to stop it. (Besides always on DRM :() I would take the approach of uploading a version of your game yourself to pirate bay and have the game insanely unbalanced. Maybe have it normal right until they are serious about the game then : Boom, they can't move without dieing. Hopefully, it would take a while until they figure out that its a fake crack, and delay a real crack for a while. It's been done before and was pretty successful. (Google around for the game dev tycoon crack story)
     
  13. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    well thanks for that input. So everyone seems to be in agreement that the anti-piracy isn't worth your time as an indie developer. I would rather players be able to play the game regardless of their internet connection status.... always on DRM is simply too expensive and I wouldn't use it unless I was making a massive multiplayer experience.... It seems I'll have to consider that there are people who will buy the game even if it's available for free :-/
     
  14. surreal4224

    surreal4224

    Joined:
    Apr 10, 2011
    Posts:
    51
    While the game maybe free somewhere, there are still plemty of people out there will opt to pay bc they have the morale sense to know you deserve to be paid, just as they would expect to be paid. As long as you keep your prices reasonable or make it initially free to play with small in app purchases, people will pay for a well made game.

    but I still think tying the game to an online account would be very effective. You wouldnt need a consistant connecgion either, just initially to establish a good account is all. The other nice thing about going account based is you could let them download the game as much as they want for life after thaton that account.
     
  15. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,039
    I couldn't agree more.

    Also, as someone making games that don't have a huge marketing budget, I wonder how much piracy really hurts me. There are a few questions that need to be answered before I can know that:
    1. Of the people who pirate my game, how many would have purchased it if they were unable to pirate it? (Ie: How much money would I gain were I to somehow successfully stop them?)
    2. Also, how many people purchase the game because they heard about it from someone who pirated it? (How much free and effective marketing am I getting as a result?)

    As it is, I know the answer to neither of those questions. I'd expect that the answer to 2 is pretty small (after all, people who pirate games have a pretty good chance of mostly telling other people who also pirate games), but I'd expect the same of 1 (there's enough games out there that if mine can't be pirated they'll probably move on to the next rather than paying up).
     
  16. exiguous

    exiguous

    Joined:
    Nov 21, 2010
    Posts:
    1,170
    the problem is, you are only one developer or a small team and have no experience in piracy protection. the "hackers" are legion and have much experience in pirating. usually they also have lots of time (you don't have) and for them its something like a sport or competition. so if you make it harder to pirate your game their "fame" will increase but it wont protect you.
    there are huge companies having the same problem so chances are low you solve the problem by starting a forum thread.

    obfuscate you code to take them more time to cheat but don't worry with pirated copies as angrypenguin mentioned NONE of the people who donwload games would buy it when it can't be cracked. so a working antipiracy would not increase sales but only satisfy your ego that only people who payed can play it.

    make a great game, get it on steam and then valve takes care of that for you as good as possible.
    another strategy is to add content/improvements frequently and let them download conveniently via some account. so all the people where the account check is disabled will have to wait until the new version is cracked and then download it again. make "online" features like chat, highscorelist, user created content what all requires account + id. so if someone downloads a cracked version where the checks are disabled the game will be pretty much crippled.

    i also would not prevent the game from run if its detected pirated but insert some events like "your units got to know that you are a software pirate and have deserted. remove them some units etc so they can still play but it will be hard/impossible. this way when they like the game they may have an insight and purchase it to avoid all the inconvenience even if its reasonable priced (like indie software usually is).
     
  17. hpjohn

    hpjohn

    Joined:
    Aug 14, 2012
    Posts:
    2,102
    But you want them to call in every time they launch

    This is a pretty nice idea if you can manage it, having to deal with the hassle of finding and installing a new crack every time is a decent deterrant
     
  18. jvil

    jvil

    Joined:
    Jul 13, 2012
    Posts:
    263
    Everything can be cracked, no matter what you do, it's just a matter of time. Your schema even doesn't need to decompile the game to by-pass this check. For example, I can change my dns settings pointing to a server that always returns a valid response.

    So, as others said I'll suggest invest your time polishing your game,
     
  19. SomerenV

    SomerenV

    Joined:
    Dec 20, 2011
    Posts:
    58
    The best piracy tactic is: deliver a game that is worth buying. People will always try to pirate games but if you offer a good game for a good price piracy will go down.
     
  20. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    One could argue that pirating is actually good publicity and ultimately creates greater fervor for your game. I think about the number of games I've pirated and then paid for and realize that I would had never bought them if I wasn't able to try them first. I suppose this whole piracy has more corner cases than I first envisioned. It may actually help my cause who knows. I certainly would rather continue delivering quality content after all our games are meant to be played.
     
  21. Alex Cruba

    Alex Cruba

    Joined:
    Aug 16, 2011
    Posts:
    564
    My newest idea is based on, well let's say an accident with entropia gold protection. Sure it must be translated from online login to register/unlock thingy.

    Entropia Gold Service

    1) You get a chipreader and a codecard
    2) You place card in reader to generate a special code
    3) You register that code in the entropia homepage profile

    Normally you log in to Entropia via name and password like any other game. The gold card protection puts on a second password layer over your account. That second layer is the generated code, BUT here comes the funny part that I called accident:

    If you enter a wrong code in this second layer 3 times, you have to do a socalled resyncronisation... The second layer pass splits in 2 fields.

    For resyncronisation you need to generate 2 codes and enter them in the splitted second layer pass login.

    What makes it so interesting? My originally code was never accepted again! I wrote to the support but after 10 minutes I deleted that support ticket...

    Why? Every time I wanna login to Entropia, I enter wrong codes 3 times just to reach the resyncronisation.

    Only me is able to generate the 2 codes that are linked to my original code, aaaaand: It's not same codes, always new codes. ;)

    If you think a bit about it, maybe it's a solution for you and you could translate it to an offline protection or with online register stuff.

    One more tip: It's always cool to add/enbed the actual pc time in... umm... my translator sucks... micro seconds? Do 10 digits after comma or more. Never 2 users will hit that special number.
     
  22. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,039
    But that's all missing the point. Aside from making your legit users' lives more or less of a pain, the level of complication of your login/password/whatever system doesn't make one single bit of difference.

    People cracking your game aren't going to try and fool the auth system and go in the front door. They're just going to turn it off.

    They'll find the bit of code that checks whether your authorisation was successful and modify it to always return true. The most successful protection systems that I know of did two things:
    1) They put that success check in a lot of different places and made it look different so it wasn't easily recognisable.
    2) They were subtle. Instead of making it obvious that a crack hadn't worked they'd introduce oddness some distance into the game, or they'd ramp up the difficulty along a ridiculous curve, or they'd hide items that you needed to finish things, or so on. This means that someone cracking the game doesn't have to just check that the game loads and starts, they need to actually play through the whole thing to know if it worked. So a test run takes say 20 hours instead of 2 minutes.

    Even with those points in mind, games still took only days or perhaps weeks to crack. That's far better than the mere hours that most games with straightforward protection take (they're often cracked before they're officially released), and it's enough to protect the launch period (which is what most publishers care about most), but is it really worth your time as an indie or hobbyist?

    But I still want to bring it back to this: Convoluted auth systems do nothing except make life a pain for legitimate users.
     
    Last edited: Sep 13, 2013
  23. acriticalstrike

    acriticalstrike

    Joined:
    May 25, 2013
    Posts:
    75
    I've got to admit I get very annoyed when I am forced to login for anything outside of an mmo. I think that DRM will only work if I have a whole team dedicated to it and a massively popular game to justify the expense associated with active anti piracy strategies.
     
  24. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    12,039
    ... and a huge number of pirates who you think you could actually convert to customers.

    Like someone said earlier, unless you can convert a pirate into a sale then this is all about ego and not actually about protecting anything.

    Edit: which actually brings up a really good point to clarify. It's all about sales conversion. Anti-piracy measures are just one potential tool which could help sales conversion. Like with any other tool, before we start using it we should ask ourselves "is this the best approach to solving the problem?", which in this case means "is this the best way I could be using my time and/or resources to increase sales?" Don't let the p-word blind you from seeing other things that might be more beneficial.
     
    Last edited: Sep 13, 2013
  25. mweldon

    mweldon

    Joined:
    Apr 19, 2010
    Posts:
    109
    There are 2 kinds of people: those willing to pay for your game, and those who are not. You will never get anything from the second group so you want them to pirate your game. The more people who play, the better. To get money from the first group, the trick is to make it more convenient to pay than to pirate. Make sure that your payment method has as few steps as possible. For instance I can buy something on Steam with like 2 mouse clicks, which is much easier than searching some virus-ridden pirate site. But if the game is overpriced or has some absurd DRM then maybe I wouldn't.
     
  26. BlackArcane

    BlackArcane

    Joined:
    Jun 26, 2011
    Posts:
    119
    Here's an idea. Determine the actual size of the binary along with the included libraries and when the game runs then check if the size is the correct size (the one your untouched package has). If not, don't launch :) That way, nobody can modify your game unless they remove and reinsert the exact same number of bits (which is pretty hard to do). If you do not want that to happen, you may as well RE your binary at runtime and verify some key-points in the code. Good luck! ;)
     
  27. JamesLeeNZ

    JamesLeeNZ

    Joined:
    Nov 15, 2011
    Posts:
    5,618
    I wouldnt bother.

    Hackers are more than likely smarter/better coders than you.

    I'd be stoked if my game got pirated. If it was worth the effort to crack, its a good game