-
Notifications
You must be signed in to change notification settings - Fork 14
Hooking Implementation
Push0 (Kernel) => Notifies Push.exe => Injects overlay => Overlay checks for certain dlls => Hooks dll if it is loaded
Possible fallback solution (as it doesn't require kernel driver) is SetWindowsHookEx
KEYBOARD_HOOK_MESSAGE - uses SetWindowsHookEx(WH_GETMESSAGE). Hooks best. If the game uses DirectInput then this hook may not work as DirectInput creates a separate thread to process messages. Without knowing what thread DirectInput is using we can't fill the dwThreadId Parameter of SetWindowsHookEx(). This is the default keyboard hook.
KEYBOARD_HOOK_KEYBOARD - uses SetWindowsHookEx(WH_KEYBOARD).
KEYBOARD_HOOK_SUBCLASS - subclasses window.
KEYBOARD_HOOK_DETOURS - Hooks PeekMessageA and PeekMessageW of user32.dll using [DetourXS] (https://github.com/DominicTobias/detourxs). Least preferred as code hooking is error prone and also because this implementation requires another library.