{"action":"opened","issue":{"url":"https://api.github.com/repos/ValveSoftware/Counter-Strike-Global-Offensive/issues/566","labels_url":"https://api.github.com/repos/ValveSoftware/Counter-Strike-Global-Offensive/issues/566/labels{/name}","comments_url":"https://api.github.com/repos/ValveSoftware/Counter-Strike-Global-Offensive/issues/566/comments","events_url":"https://api.github.com/repos/ValveSoftware/Counter-Strike-Global-Offensive/issues/566/events","html_url":"https://github.com/ValveSoftware/Counter-Strike-Global-Offensive/issues/566","id":124559487,"number":566,"title":"cheat protection is non-existent on the linux client","user":{"login":"wacossusca34","id":1881867,"avatar_url":"https://avatars.githubusercontent.com/u/1881867?v=3","gravatar_id":"","url":"https://api.github.com/users/wacossusca34","html_url":"https://github.com/wacossusca34","followers_url":"https://api.github.com/users/wacossusca34/followers","following_url":"https://api.github.com/users/wacossusca34/following{/other_user}","gists_url":"https://api.github.com/users/wacossusca34/gists{/gist_id}","starred_url":"https://api.github.com/users/wacossusca34/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wacossusca34/subscriptions","organizations_url":"https://api.github.com/users/wacossusca34/orgs","repos_url":"https://api.github.com/users/wacossusca34/repos","events_url":"https://api.github.com/users/wacossusca34/events{/privacy}","received_events_url":"https://api.github.com/users/wacossusca34/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-01T20:05:39Z","updated_at":"2016-01-01T20:05:39Z","closed_at":null,"body":"There's a (linux) cheat that actually utilizes the in-game outlines that is normally used in demos and is able to simply change the memory for player entities in a particular struct to get a working wallhack - this is ridiculous and there should be some sort of safegaurd to prevent this (re-using the game's code/shaders for most of the cheat to work is a joke).\r\n\r\nI also have reason to believe VAC simply does not do _anything_ on linux:\r\n\r\n- You can open upon `/proc/<pid>/mem` and hack away at the game. You can periodically check for file descriptors open in linux, one way is using `libprocstat` (an example can be found in [fuser's source code](http://web.mit.edu/freebsd/head/usr.bin/fstat/fuser.c)).\r\n\r\n - I have not tried `LD_PRELOAD`'ing any libraries, of which the best fix would be to used a patched linker for ELF executables in the steam runtime (if it is currently possible to exploit).\r\n\r\n- The `ptrace` system call is also very likely to work to peak into the process's memory space. I can't think of a sane solution to prevent use of this system call, but I found [this gem](http://serverfault.com/questions/285501/is-there-a-way-to-disable-the-ptrace-system-call-on-rhel5-linux) on SO where they hack away the syscall by writing to kernel memory.\r\n\r\neven though most client-side AC measures will eventually get hacked away, it's probably worth preventing the most trivial cheats from working."}}