Search Unity

Anti-Cheat with your Game

Discussion in 'Multiplayer' started by iSleepzZz, Mar 8, 2016.

  1. iSleepzZz

    iSleepzZz

    Joined:
    Dec 23, 2012
    Posts:
    206
    Hello everyone!
    I currently am developing my own multiplayer online game. It's all going well, and the development is very fast since I am coding with trust in the client. (Which I know is a bad way to protect your game against cheaters).
    I will definitely change all my code when the game is up and running to 100% authoritative, however for now, I am developing it quickly and not authoritative.
    I was wondering, is there a anti-cheat system for unity games that I can attach to my project/game and it will block a ton of cheats without even implementing 100% authoritative yet.
    I've heard of things like FairFight, Valve, HackShield, etc. but all these easy to implement or anything?

    If there is, or any information on this, please let me know. Thanks!:)
     
  2. BrUnO-XaVIeR

    BrUnO-XaVIeR

    Joined:
    Dec 6, 2010
    Posts:
    1,687
    Just do not trust anything implemented on .Net(C#, C++/CLR, etc);
    They are useless since C# is way too easy to revert source code and read through it then realise whatever the anti-cheat is doing. A cheater will patch any anti-cheat built on C# at max in a weekend.
    Unity has great support for C dlls; build your anti-cheat systems from there. If you don't know how, well.. Good luck.
     
  3. Freakyuno

    Freakyuno

    Joined:
    Jul 22, 2013
    Posts:
    138
    Pretty good advice here even though this poster is feeding you a little erroneous information.
    Any language is easy to reverse engineer. obfuscated, encrypted, signed...doesn't matter. If it's on the client you can't trust it. They don't even need to decompile your code to modify whats happening on their system, they can do it directly in memory, or directly at the network packet level as it comes or goes to their machine.

    Heck, at one time I wrote an arp poisoning driver for linux that put the card is promiscuous mode and could modify packets from another machine entirely, so you couldn't even detect anything on "my" game machine if you were looking.

    Your best bet is to just not trust the client, period. If you're happy with your progress...keep going! Don't worry about the hackers. If you've got players and you're making money and you need to reinvent your server / client setup, you'll have the money to do it.

    If you have the know-how it's ALWAYS better to do it up front, but like you said...you're making good progress, I wouldn't stop. :)
     
    Muke24 and BrUnO-XaVIeR like this.
  4. BrUnO-XaVIeR

    BrUnO-XaVIeR

    Joined:
    Dec 6, 2010
    Posts:
    1,687
    Yep, make client send no more than keyboard/mouse input.
    Still, if for any reason you have to store anything locally, do not store it into a .NET dll, because even kids can read them.
    There's not many ppl out there capable of reading assembly while at same time interested on cheating in indie games, some in-memory encryption + memory address shifting will keep all the lower profiles away.