How are anti-cheats made?
•
21 May 2014, 16:50
•
Journals
And where do you start?
I'm just wondering, for general knowledge; in what language are most anti-cheats written in?
Why is one working better than the other? etc
I'm just wondering, for general knowledge; in what language are most anti-cheats written in?
Why is one working better than the other? etc
English.
Because it's more efficient.
/thread
xd
but I'd imagine they're written in C/C++ (except CGAC which is written in C# I think)
I'd also guess they work mainly by checking the memory to see if anything is modifying the game process (maybe checking only for signatures of known cheats, and known methods, so as not to produce false positives with people using RInput etc)
other methods would be screenshots, searching game folders, checking the checksum of game files etc
Cheats can be made in different ways. The really oldschool way of for example an aimbot, was to obtain certain hooks (X, Y and Z coordinates) of the player and the opponent. This used to be done through a DLL Injector, but injection is usually fairly easy to detect. So people started to mess around the OpenGL32.dll by replacing this with their own version of the file making them able to manipulate the game. One of the perfect cheats would be to use reflection and just read the code (without injecting anything in the game) and then manipulate the windows mouse correctly. Although messing around with the windows mouse is pretty hard in general.
Now the way most (lets say all) AC's work, is anticipating these "known" methods of manipulating the game and detecting these manipulations. Now a perfect AC would be build for un-used methods, but this requires the AC writer to mess around with creating these cheats himself a lot.
Hope this sort of answers your question ;)