When playing First Person Shooters online it's possible to stumble on opponents using aimbots. They are really a plague, and I was wondering whether there is anything that can be done to block them.
I have researched this a bit, and on Stack Overflow I've found a question on how aimbots work. The accepted answer explains that the aimbot reads from some memory addresses the position of an enemy relative to the player, calculates the right direction, and then sends the fake input to the game. This sending of the fake input is deemed "trivial", and this is where I think we could do something.
The aimbot can simulate, via software, the input that should come from the mouse, thus fooling the game into accepting those movements as legitimate and coming from a player's hand. Couldn't an OS make it impossible for a program to fake user input? I am thinking of something like the Protected Media Path that is integrated in Windows, and that makes it impossible to copy DRM-protected contents. It relies on HDCP, which is a licensed technology, and of course the license isn't given to rogue manufacturers (and in case it could be revoked). Couldn't OS vendors and mouse manufacturers develop a "Protected Input Path", relying on certified hardware with signed drivers, that would make it impossible for a program to fake user input?
Then, the game (whose binaries would also be signed) would only use input that comes from real mouse movement, not from another program. That is, from the player's hand, not from an aimbot.
Would this work? And in case, why isn't it done?