首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动化防护

自动化防护
EN

Stack Overflow用户
提问于 2008-09-27 08:30:17
回答 7查看 2.2K关注 0票数 7

我们的下一个项目应该是一个基于MS的游戏(用C#编写,带有一个winform和一个集成的DirectX显示控制),为想要给最好的玩家颁奖的客户。这个项目是为了运行几年,与冠军,梯子,锦标赛,球员与球员-行动,等等。

这里的一个主要问题是作弊,因为如果一个玩家能够--例如,让一个定制的机器人为他玩游戏--(更多的是在策略上--决策而不是玩很多小时的游戏),他就会受益匪浅。

所以我的问题是:我们有什么技术上的可能性来检测机器人的活动?当然,我们可以跟踪播放的小时数,分析检测异常的策略等等,但就这个问题而言,我更感兴趣的是了解以下细节:

  • 如何检测另一个应用程序是否定期截图?
  • 如何检测另一个应用程序是否扫描我们的进程内存?
  • 有什么好的方法来确定用户输入(鼠标移动,键盘输入)是否是人工生成的,而不是自动化的?
  • 是否有可能检测到另一个应用程序是否请求有关我们应用程序中控件的信息(控件位置等)?
  • 有哪些其他方法可以让骗子收集当前游戏状态的信息,将这些信息反馈给机器人并将确定的操作发送回客户端?

您的反馈非常感谢!

EN

回答 7

Stack Overflow用户

发布于 2008-09-27 09:29:50

不久前,我编写了d2botnet,一个.net暗黑破坏神2自动化引擎,您可以在列表中添加一些要注意的内容,即格式错误/无效/伪造的数据包。我猜这个游戏会通过TCP进行通信。包嗅探和伪造通常是第一种方式,游戏(在线)是自动化的。我知道暴雪会检测出畸形的数据包,这是我试图避免在d2botnet上做的事情。

因此,请确保检测到无效数据包。加密它们。干掉他们。做点什么以确保它们是有效的。如果你仔细想想,如果有人能准确地知道每一个数据包是什么意思,他们甚至不需要运行客户端软件,这就使得任何基于进程的检测都是毫无意义的。因此,您还可以添加某种基于数据包的挑战响应,您的cleint必须知道如何响应。

票数 7
EN

Stack Overflow用户

发布于 2008-09-27 08:39:54

如果“骗子”在虚拟机(比如vmware)中运行你的软件,并对这个窗口进行截图,那该怎么办?我怀疑你能为之辩护。

你显然无法抵御‘模拟差距’,例如骗子的系统用高质量的相机制作外部截图--我想这只是一个理论问题。

也许你应该去调查国际象棋网站。下棋有很多钱,他们也不喜欢机器人--也许他们已经想出了解决办法。

票数 5
EN

Stack Overflow用户

发布于 2008-09-27 09:17:44

防止自动化的最好办法是不要有需要磨练的任务。

尽管如此,检测自动化的最好方法是积极地让用户参与,并要求定期进行类似CAPTCHA的测试(除了没有图像等等)。我建议使用一个由数千个简单的一次性问题组成的数据库,这些问题经常会被提交给用户。

但是,基于您的问题,我认为您最好的选择是不要在C#中实现反自动化特性。您很难从托管代码中检测到编写良好的黑客/机器人,特别是当黑客只需进入ring0以避免通过任何标准方法进行检测时。我推荐一种类似典狱长的方法(可以下载的模块,您可以随时更新)与内核模式驱动程序相结合,该驱动程序连接所有的windows API函数,并监视它们是否“不合适”调用。但是,请注意,您将遇到很多错误,因此您不需要将禁止系统建立在自动数据的基础上。禁止之前一定要让人看一看。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/143231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档