各位大侠,高手大神们,小弟我在写一个反外挂程序时遇到了问题,请各位高手指教(外挂很可恨)

wangshinew 2014-02-12 09:37:09
各位大侠,高手大神们,小弟我在写一个反外挂程序时遇到了问题,请各位高手指教(外挂很可恨).
有一个外挂就是模拟按键,设置好了按键后(只在F1~F10之间),就可以不断模拟按键。我想用一个内挂把它封掉。请问如何下手?
A程序(游戏程序),B为外挂程序,
C为反外挂程序.
我利用C做全局钩子无论是WH_KEYBOARD还是WH_CALLWNDPROC,或者WH_GETMESSAGE都无法,是不是我编程有误还是方法不对,请大侠写个提示代码,谢谢。

LRESULT CALLBACK CallGetMsgProc(int nCode,WPARAM wParam,LPARAM lParam)
{
MSG *pMsg;
pMsg=(MSG*)lParam;
if(pMsg->message == WM_KEYDOWN )
{
WORD wKey = (WORD)wParam;
if((wKey >= VK_F1)&&(wKey <= VK_F10))
{
GetLocalTime(&SysTime);
My_Shijian2.Format("%02d%02d%02d",SysTime.wHour,SysTime.wMinute,SysTime.wSecond);
// My_HaoMIao2 =SysTime.wMilliseconds;
if ( My_Shijian1 =="")
{
My_Shijian1 = My_Shijian2;
//My_HaoMIao1 = My_HaoMIao2;
My_CiShu = 0;
My_CiShu ++;
return CallNextHookEx (hGetMessge, nCode, wParam, lParam);
}
else if(My_Shijian1 == My_Shijian2)
{
if(My_CiShu > 1) return 1;
else
{
My_CiShu ++;
return CallNextHookEx(hGetMessge, nCode, wParam, lParam);
}
}
else if (My_Shijian1 != My_Shijian2)
{
My_Shijian1 = My_Shijian2;
//My_HaoMIao1 = My_HaoMIao2;
My_CiShu = 0;
My_CiShu ++;
return CallNextHookEx(hGetMessge, nCode, wParam, lParam);
}
}
}
return CallNextHookEx (hGetMessge, nCode, wParam, lParam);
}
控制按键连点时间
...全文
339 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2015-01-19
  • 打赏
  • 举报
回复
谁能判断出按键是机械手按的,而非人手按的?
sniffer12345 2014-02-17
  • 打赏
  • 举报
回复
本来就不在一个层,人家是外挂你是内挂,你怎么知道输入是人类的输入而不是机器的输入? 要我说,游戏中加动态验证码就足够屏蔽所有的模拟按键了
赵4老师 2014-02-17
  • 打赏
  • 举报
回复
引用 2 楼 wangshinew 的回复:
楼上,谢谢你的忠告,但是我要养家吃饭啊!哟啊不连生命都没得浪费!知道请给个提示!谢谢
zhuobattle 2014-02-17
  • 打赏
  • 举报
回复
这类模拟按键应用层很难防,只能移到R0层来做防御
buyong 2014-02-17
  • 打赏
  • 举报
回复
可能你思路不对,比如B程序已经hook了keyboard,然后他没在把按键消息往下发,你的C程序再hook键盘输入有什么用? 你还是找找这方面的技术文章,看看别人反外挂怎么做的,我估计应该在A程序里加内容,而不是再做一个C
wangshinew 2014-02-13
  • 打赏
  • 举报
回复
楼上,谢谢你的忠告,但是我要养家吃饭啊!哟啊不连生命都没得浪费!知道请给个提示!谢谢
赵4老师 2014-02-12
  • 打赏
  • 举报
回复
奉劝楼主不要把有限的生命浪费在无限的写外挂反外挂死循环中!

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧