• 1 Post
  • 18 Comments
Joined 1 year ago
cake
Cake day: June 20th, 2023

help-circle
  • Ah, so they don’t actually say that they read kernel space. They check the version of all installed packages and checksum the installed DLLs/SOs.

    If the user still has root privileges, this may still not prevent sideloading of kernel modules. Even if it would detect a kernel module that has been sideloaded, I believe it’s possible to write a kernel module that will still be resident after you unload it. This kernel module can then basically do anything without the knowledge of userspace. It could for example easily replace any code running in userspace, and their anticheat would miss that as it doesn’t actually check what code is currently running. Most simply, code could be injected that skips the anticheat.

    Of course, in their model, if a user isn’t given root privileges it seems much harder to do anything, then probably the first thing you’d want to look for is a privilege escalation attack to obtain root privileges. This might not be that hard if they for example run Xorg as it isn’t known to be the most secure - there’s a reason there’s a strong recommendation to not run any graphical UI on servers.

    Another way if you don’t have root is to simply run the code on a system that does but that does have such a kernel module - or perhaps modify the binary itself to skip the anticheat. I don’t see anything preventing that in their scheme.


  • I’m having a hard time understanding how this would work. udev will load kernel modules depending on your hardware, and these modules run in kernel space. Is there an assumption that a kernel module can’t cheat? Or do they have a checksum for each possible kernel module that can be loaded?

    Also, how do they read the kernel space code? Userspace can’t do this afaik. Do they load a custom kernel module to do this? Who says it can’t just be replaced with a module that returns the “right” checksum?













  • Did something similar recently. Turns out rsync by default, if it encounters a symlink to a directory and it’s instructed to copy a directory with the same name, will remove the symlink and create an empty directory.

    So I had a script that installs crosscompiled kernel modules via rsync /path/to/nfs/path /

    This worked perfectly until Debian 12, like other distros, decided to merge /usr, so now /bin is a symlink to /usr/bin. First time I run the script after upgrade /bin gets replaced and then no programs can be started as all binaries look for /bin/ld-linux.

    I managed to fix it by booting into busybox and recreating the symlink, but it took a while until I figured out what was wrong, wasn’t familiar with usrmerge.



  • I’m running ZRAM on my old Netgear ReadyNAS’s, which has 512MB or 256MB RAM. It enables them to do a lot more than they otherwise would be able to, running a modern linux distribution.

    I’ve been so satisfied with it that I even started running it on my modern desktop with 32GB RAM, it helps with my tab addiction :)