You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity实现按键监控时Hook、DirectInput等方法在英雄联盟等游戏中失效如何解决?

问题根本原因

你遇到的是反作弊系统的输入保护机制导致的拦截问题,英雄联盟搭载的Vanguard内核级反作弊系统会主动拦截所有非白名单进程的输入读取请求,避免外挂通过监听输入、模拟操作实现作弊功能,同类带内核反作弊的游戏(比如Valorant、CS2等)都会存在相同的限制。


各方案失效的具体原因

  • LowLevelHook全局钩子方案:Vanguard会在内核层过滤全局键盘钩子的回调队列,非信任、未签名的进程注册的钩子回调会被直接剔除,不会收到输入事件通知。
  • SharpDX.DirectInput方案:DirectInput属于用户态输入接口,反作弊会对游戏进程独占的输入设备做访问隔离,非游戏进程调用GetCurrentState()时只会拿到无按键按下的空状态。
  • GetAsyncKeyState方案:该Win32 API的调用会被Vanguard的用户态钩子拦截,非信任进程调用时始终返回按键未按下的伪造结果,无法获取真实输入状态。

可行的解决方案

  1. 合法自用场景可以尝试先对程序做正规数字签名,再以管理员权限运行,可绕过部分用户态的输入拦截,但无法突破内核层的限制,适配性有限。
  2. 如需全场景适配,需要开发内核级键盘过滤驱动,直接从IO端口读取键盘输入数据,但驱动需要完成微软WHQL签名,未签名的驱动会被Vanguard直接拦截,甚至触发账号异常判定。
  3. 若功能仅服务于英雄联盟场景,优先选择Riot官方开放的开发者API实现对应需求,所有绕开反作弊的输入监听行为都存在账号封禁风险,不建议用于线上正式账号。

内容的提问来源于stack exchange,提问作者Tidne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:24:03