Rs ::heuristics ::process_source( &heuristic_engine ->event_hook_source) Rs ::heuristics ::process_source( &heuristic_engine ->event_client_source) // Process data gathered by the low level mouse hook Process data gathered by internal handlers The following functions parse and pack the event data, and is later sent // by a different component related to networking that has a queue system for // packets. } void _fastcall rs ::mouse_hook_handler_internal(rs ::window_ctx *window_ctx, _int64 wparam, _DWORD *lparam) } // Pass the information to the next hook on the system return CallNextHookEx(hhk, code, wParam, lParam) Rs ::mouse_hook_handler_internal(rs ::client ::singleton ->window_ctx, wParam, lParam) The Runescape mouse handler is quite simple in its essence (the following pseudocode has been beautified by hand): LRESULT _fastcall rs ::mouse_hook_handler( int code, WPARAM wParam, LPARAM lParam) Low level hooks are frequently used by keyloggers, but have legitimate use cases such as heuristics like the aforementioned mouse hook. This allows applications on Windows to intercept all mouse events, whether or not the events are related to your application. This installs a low level hook on the mouse by appending to the system-wide hook chain. Hhk = SetWindowsHookExA(WH_MOUSE_LL, rs ::mouse_hook_handler, module_handle, 0) const auto module_handle = GetModuleHandleA( 0) I started by analyzing the Runescape client to confirm this theory, and quickly noticed a global called hhk set shortly launch. Therefore, the only thing I could deduce was that mouse movement matters, or does it? Heuristics! I tried to find information online on how Jagex combats these botters, and only found videos of commercial bots bragging about how their mouse movement systems are indistinguishable from humans. I started this bot back in October with the goal of testing the limits of their bot detection system. At first glance, this account looks just like any other player, but there is one key difference: it’s a bot. Bottingįor the past months, an account named sch0u has been playing on world 67 around the clock doing mundane tasks such as killing mobs or harvesting resources. One weekend, I decided to take a look at the detection systems put in place by Jagex to prevent player automation in Runescape. Player automation has always been a big concern in MMORPGs such as World of Warcraft and Runescape, and this kind of game-hacking is very different from traditional cheats in for example shooter games.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
March 2023
Categories |