最近玩一个网游,经常需要不断点击鼠标刷怪,就偷了懒用Mouse_event帮我,但是游戏最新的更新版本屏蔽了这个消息,只要运行游戏,Mouse_Event就失效,不管你针对哪个窗口。sendmessage和postmessage更是早就被屏蔽了,因为有NP保护,过滤了鼠标左键单击消息WM_LBUTTONDOWN,用Mouse_Event也不行,被过滤,但是真正鼠标点击没问题,鼠标点击的时候不也是发一个WM_LBUTTONDOWN消息吗?这就奇怪了,NP是怎么区分的呢?用winio去发送鼠标消息也不行,好像NP保护了IO端口,我没辙了

解决方案 »

  1.   

    低级鼠标HOOK 和低级键盘HOOK 可以检测是否是输入注入消息
    MSLLHOOKSTRUCT 的flage bit0--> Specifies whether the event was injected. The value is 1 if the event was injected; otherwise, it is 0. KBDLLHOOKSTRUCT 的 flages bit4-->Specifies whether the event was injected. The value is 1 if the event was injected; otherwise, it is 0.我想应该有两种方法可以绕过它, 就是WinIO写BUFF的方式,这种是硬件模式 肯定可行
    还有就是在游戏启动后 再启动你的模拟程序,在低级HOOK里清除标志位,如果游戏为了反这一HOOK,可能已经HOOK了SetWindowsHook及SetWindowsHookEx API,以保证它的HOOK处于链的最头, 那么你就应该先HOOK了这些API,在游戏HOOK了键鼠以后再启动你的键鼠HOOK, 反正就是要保证你的键鼠HOOK在最链头。