Now if only they could more clearly communicate when games are playable offline.

  • corroded@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    arrow-down
    6
    ·
    22 days ago

    Why is kernel-level anti-cheat even a thing?

    If I was trying to prevent cheating, I’d hash the relevant game files, encrypt the values, and hard-code them into the executable. Then when the game is launched, calculated the hash of the existing files and compare to the saved values.

    What is gained by running anti-cheat in kernel mode? I only play single-player games, so I assume I’m missing something.

    • kevindqc@lemmy.world
      link
      fedilink
      English
      arrow-up
      28
      arrow-down
      1
      ·
      22 days ago

      Because there are kernel-level cheats

      What you proposed can very easily be bypassed without even needing kernel access by just editing the executable code that checks hashes to always return true

    • Maalus@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      22 days ago

      And then a game gets updated so the hashes don’t match and uh oh, everything is fucked. Oh, but we can change the hashes of the files in the executable! Yeah, so can they. People modding shit into the executable is basically a given. Let alone the fact that you’d need to sit through a steam “validation of files” length of time every time you’d need to launch a game (because validation works exactly as you have described).

      What is gained is that it has access to more information. Some cheats use an entirely different program / process that reads memory and outputs info that is available to the game but hidden from the player. Like a client needs to know where a person on the other team is to be able to draw their model. So you read that, you put a little box over where they are, and bang you have wallhacks.

    • ampersandrew@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      22 days ago

      They can prevent you from running cheats that other anti-cheats can’t detect. For instance, they could modify the value in memory so that your calculated hash always succeeds even when it’s modified. This doesn’t stop cheating though; it just means cheaters have to use cheat hardware that exists at a layer that even kernel anti-cheat can’t detect.