Replies: 8 comments 9 replies
-
There is nothing you can do with a open source exe that would be worth while as a anti cheat. |
Beta Was this translation helpful? Give feedback.
-
https://github.com/AlSch092/UltimateAntiCheat I think it's worth checking |
Beta Was this translation helpful? Give feedback.
-
I've written a lot of these(anti cheat/anti copy tech), best case scenario it usually prevents people from hacking the game for about a month(4 to 10 weeks on average) then cheats are usually available, and thats in closed source denuvo based projects. These are fun to work on but usually don't yield anything of value in the long run |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Here’s my two cents on this topic. Zero hour is a community driven game, with a lot of the active playerbase across different platforms being acquainted with each other. In this regard the community itself is the biggest anti cheat, whereby bad actors are gonna be either anonymous or known cheaters. If we give the community the tools to deal with bad actors then cheating itself would be less of an issue. Wether it be detecting cheaters(gentool), exposing them, or barring them from playing with people in the community. Currently most games are played on Radmin and GameRanger where it’s more obvious to exclude people you don’t want to play with. This however only tackles the anti-cheat in terms of people gaining an unfair advantage, there could also be malicious actor who’d take advantage of potential serieus game vulnerabilities that can do more damage than just a bad match. |
Beta Was this translation helpful? Give feedback.
-
Tarnished Knight here, you can prevent most forms of cheating by moving game state and verification into sync'ed code - this requires a review of the current network commands. If done properly, game state cheating will force a CRC mismatch. Map hacking is perhaps something to tackle as a separate issue. |
Beta Was this translation helpful? Give feedback.
-
I think the anticheat is going to depend also if the cross platform support is going to be only by wine ussage or native usage of linux and mac, and also bsd probably. Maybe the simplest approach is to go for wine 100% all in, Since you can use Lutris in linux and create the yaml file for quick installation for non tech savy people, probably the same you can do it in mac with crossover. I still have the generals and zero hours cd, and I played in Linux with the first version of the game without patches applied, it works fine, and also I think works better than windows because I believe it's using the dot net library for the time of the game release. So probably if you want some kernel level anti cheat, maybe the quickest path is going full wine, but that probably it's going to let some people outside of playing the game because they are not tech savy enough. Also with this approach you are denying the possibility to have a package of the game in Linux distros like openRA in the future and in homebrew I guess (Not a mac user). I think that the server approach can let you have more security in some scenarios, but also you can implement the possibility of banning IP addresses that are cheaters and hackers. So in that case you can also ban vpn usage and TOR/I2P relay IPs by default in the server. You can have in the game the option for launching p2p game matches, but also the server option. So in the end you can create a general server that's is not going to have by default any kind of cheating and hacking behavior so newer players don't quit the game by cheater usage. But also you can have the legacy feature of p2p and the option to have a custom server. The custom server could be use maybe for pro players that want to have the minimum latency possible. The custom server and p2p options could have vpn support by default. |
Beta Was this translation helpful? Give feedback.
-
Kernel-anticheat is great way to get players to hate the project. In-game cheats can be defeated by fixing the security flaws in the game's network protocol such that any attempt to modify the game will result in mismatch rather than all the clients happily accepting the Insecure Direct Object Reference. Map hacks are a lesser issue, but if the protocol is extended such that the clients report mouse position and camera position - you'll be collecting the data needed to analyse whether someone is cheating. Maybe you'd be able to run it through some AI to flag possible cheating? If the cheater attempts to hide their camera and mouse positions then I think they will have a near impossible task to make the result convincing (i.e. it has to look natural and line up with commands issued.) If a relay server is used as suggested in https://github.com/TheSuperHackers/GeneralsGameCode/issues/2497, then you also have a system that can allow easy spectating. So you can use spectators to help look for cheaters - especially if you give them the option to follow a player's camera. |
Beta Was this translation helpful? Give feedback.
-
We need to figure out strategies to combat cheating.
Strategy 1
Perhaps we can mutate p2p network communications, random generators and seeds in a way so that only executables signed by the same private token are compatible. Ideally the mutation complexity would be large enough so that an attacker cannot easily swap this code in the compiled file. Mutations can be force inlined, to spread them out further across the code. Ideally hooks are all code bits that access some network or logic related inputs that need not be of a specific value.
With such a mutation in place, a publisher should be able to create an executable that is multiplayer incompatible with the executable of another publisher, even if they both owned the exact same source code.
Edit: Can likely be defeated
Strategy 2
Make Replay logging richer:
Beta Was this translation helpful? Give feedback.
All reactions