Recently, one of the games I wrote a bot for began using GameGuard. Since the bot makes use of SendInput and Read/WriteProcessMemory, it currently no longer works.
So I figured I'd use system calls to get around GameGuard's hooks. This didn't quite work; and I assume it is because of GameGuard's driver (wmpi_dump or something long those lines) is still blocking input (since the input works just fine when GameGuard isn't loaded).
I see that MHS is easily able to get around any sort of protection. I'm actually quite impressed. The question is, how does MHS manage to do this? I think the only way would be to write a system driver, but that's a lot of work--especially considering all the small differences between operating systems and processor architectures. Maybe there's an easier way?