Winapi 是否可以监视对(Nt)发送(用户)输入和设置WindowsHookex的调用?

Winapi 是否可以监视对(Nt)发送(用户)输入和设置WindowsHookex的调用?,winapi,Winapi,我正在努力开发一个反作弊系统。系统将通过识别使用各种键盘/鼠标输入API的应用程序来工作,如Windows中的SendInput、keybd_事件、mouse_事件和SetKeyboardState。将所有应用程序与系统允许调用这些函数的应用程序数据库进行比较 为此,我需要知道是否有任何方法可以监视对某些WinAPI函数的调用 我还需要监视对SetWindowsHookEx的调用。keybd\u事件和mouse\u事件都在封面下使用SendInput。尽管您可以向所有进程注入usermode D

我正在努力开发一个反作弊系统。系统将通过识别使用各种键盘/鼠标输入API的应用程序来工作,如Windows中的SendInput、keybd_事件、mouse_事件和SetKeyboardState。将所有应用程序与系统允许调用这些函数的应用程序数据库进行比较

为此,我需要知道是否有任何方法可以监视对某些WinAPI函数的调用

我还需要监视对SetWindowsHookEx的调用。

keybd\u事件和mouse\u事件都在封面下使用SendInput。尽管您可以向所有进程注入usermode DLL并钩住这些API,但这并不是大多数反作弊系统的工作方式,因为它很容易被破坏,例如通过使用蹦床

通常,希望监视/绕过这些API的反作弊程序会更深入地监视/绕过这些API。例如,它们将钩住NtSendUserInput系统调用。GameGuard是一个钩住SendInput和NtSendUserInput的系统示例

在编写反作弊系统代码时,您必须意识到的第一件事是,您还可以假设您的代码很容易被攻击者破坏或操纵。您谈到了与应用程序数据库进行比较。也许您打算通过文件路径来实现这一点,您可以通过文件路径来实现。然后,您需要考虑如何阻止攻击者注入DLL以将您的调用挂接到该API,或者甚至加载一个进一步挂接的驱动程序

作弊和反作弊的来回游戏是无止境的,不断更新代码签名,作弊者用不同的启发式重新编译,你钩住用户模式,他们蹦床,你钩住内核模式,他们把驱动加载到蹦床上,等等。如果你问这样的问题,很可能你更适合购买一个解决方案,而不是尝试推出自己的解决方案。

keybd_事件和mouse_事件都在封面下使用SendInput。尽管您可以向所有进程注入usermode DLL并钩住这些API,但这并不是大多数反作弊系统的工作方式,因为它很容易被破坏,例如通过使用蹦床

通常,希望监视/绕过这些API的反作弊程序会更深入地监视/绕过这些API。例如,它们将钩住NtSendUserInput系统调用。GameGuard是一个钩住SendInput和NtSendUserInput的系统示例

在编写反作弊系统代码时,您必须意识到的第一件事是,您还可以假设您的代码很容易被攻击者破坏或操纵。您谈到了与应用程序数据库进行比较。也许您打算通过文件路径来实现这一点,您可以通过文件路径来实现。然后,您需要考虑如何阻止攻击者注入DLL以将您的调用挂接到该API,或者甚至加载一个进一步挂接的驱动程序


作弊和反作弊的来回游戏是无止境的,不断更新代码签名,作弊者用不同的启发式重新编译,你钩住用户模式,他们蹦床,你钩住内核模式,他们把驱动加载到蹦床上,等等。如果你问这样的问题,很可能你更适合购买解决方案,而不是尝试推出自己的解决方案。

是的,我知道这是一个艰难的世界。在客户端机器上运行的所有东西都会被彻底销毁::-D.不知道整个蹦床业务。在谷歌搜索了一段时间后发现:是的,我知道这是一个艰难的世界。在客户端机器上运行的所有东西都会被彻底销毁::-D.不知道整个蹦床业务。在谷歌搜索了一下术语后发现: