我们的下一个项目之一应该是基于MS Windows的游戏(用C#编写,带有winform GUI和集成的DirectX显示控件),供想要向最佳玩家赠送奖品的客户使用.这个项目意味着运行几年,包括锦标赛,阶梯,锦标
这里的一个主要问题是作弊,因为玩家如果能够 – 例如 – 让一个定制的机器人为他玩游戏(在战略决策方面比在玩很多小时方面更多)会受益匪浅.
所以我的问题是:我们有什么技术可能来检测机器人活动?我们当然可以跟踪播放的小时数,分析检测异常的策略等等,但就这个问题而言,我更想知道像
>如何检测另一个应用程序是否制作定期截图?
>如何检测另一个应用程序是否扫描我们的进程内存?
>确定用户输入(鼠标移动,键盘输入)是人为生成而非自动化的好方法是什么?
>是否可以检测另一个应用程序是否请求有关我们的应用程序中的控件的信息(控件的位置等)?
>还有哪些其他方式可以让骗子收集有关当前游戏状态的信息,将这些信息提供给机器人并将确定的操作发送回客户端?
非常感谢您的反馈!
我曾经写过d2botnet,一个.net diablo 2自动化引擎,你可以添加到你要注意的事物列表中的是畸形/无效/伪造的数据包.我假设这个游戏将通过TCP进行通信.数据包嗅探和锻造通常是游戏(在线无论如何)自动化的第一种方式.我知道暴雪会检测到格式错误的数据包,有些人试图远离d2botnet.因此,请确保检测到无效数据包.加密他们.哈希他们.做一些事情以确保它们有效.如果你考虑一下,如果有人能够准确地知道每个数据包的意思是来回发送,他们甚至不需要运行客户端软件,这使得任何基于进程的检测都成为一个有争议的问题.因此,您还可以添加某种基于数据包的质询响应,您的提示必须知道如何响应.