服务器如何检测无效的客户端

时间:2014-11-18 20:25:32

标签: security reverse-engineering server challenge-response

服务器(即作为多个客户端的中央服务的远程主机)如何检测类似于暴雪的守望者的恶意或无效客户端。在某种程度上,这些类型的软件每隔一段时间就向客户询问特定信息,这些信息不容易从非官方客户端伪造。

我想知道的是,如何实施这样的机制,以便从客户端进行逆向工程很难或不可能?开源客户端软件(闭源服务器)有没有这样的技术?

1 个答案:

答案 0 :(得分:1)

简短回答:你不能。客户从根本上说是不可信的。暴雪(和其他反作弊软件的提供者)与作弊者进行持续的军备竞赛。你不能只实施一次并完成它;你必须经常监控你的产品(启发式或通过播放器报告)作弊,然后弄清楚如何以编程方式评估某人是否在作弊。

更长的答案是你要保留你的秘密酱油#34;检测客户;客户端只是收集信息,然后转发给可信任的机器进行分析。这可能使作弊者更难以避免被发现,因为他们只知道正在收集哪些信息,而不知道正在采取什么信息。最终,他们会弄清楚如何欺骗这些信息,然后你的反作弊机制需要处理那个问题。

可以做的是在您的服务器代码中实施启发式检测,以检测发送其他方式无法实现的输入的玩家,然后标记这些帐户以供审核或禁止。这没有检测到客户端上的恶意软件,但它可以检测到该恶意软件的影响。因此,虽然您可能无法确定 正在发送这些无效输入的内容,但您仍然可以不执行该帐户。

更具体地说,对于你的问题,你不可能给你一些例子,因为必须定义什么构成"作弊"在您的应用程序的上下文中,然后检测它的设备方法。这是一个非常特定于域的问题,为了使其更复杂,您不太可能找到此类系统的开源实现,因为它们必然依赖于默默无闻来检测作弊者。