Articles of 反作弊

如何避免用户从客户端攻击我的networking游戏?

我决定做一个在线游戏; 服务器将信息包发送到客户端应用程序,这将模拟从服务器获得的信息。 客户端是游戏devise的一部分,并将新的状态发送回服务器进行处理。 客户端可以发送虚假的信息到服务器,并通知服务器,我已经成功完成任务,没有尝试。 假设一个反恐精英游戏; 客户端可能会发送一个虚假的数据包到服务器,并告诉服务器,我已经击败了某人。 我怎样才能避免这种违规行为?

Aimbots如何被发现?

我想知道用于检测玩家何时使用Aimbot / AutoAim作弊的编程方法。

这种散列玩家位置的方法能否有效地击败FPS的黑客攻击?

例如,使用类似下面的类来保持玩家位置,并且只有当他们的距离小于某些东西时才向对方展示玩家,所以计算也被客户端PC使用。 public struct SafeFloat { private float offset; private float value; public SafeFloat (float value = 0) { offset = Random.Range(-1000, +1000); this.value = value + offset; } public float GetValue () { return value – offset; } public void Dispose () { offset = 0; value = 0; } public override string ToString() { […]

反作弊:客户端有多安全?

比方说,理论上讲,我正在开发一个第一人称射击游戏,当然还有一个像墙一样的地图。 在客户端代码中,玩家显然会在与这些墙对象发生碰撞时停下来。 但是,服务器只接收玩家的位置坐标。 如果没有在客户端进行某种数据编码,播放器可以很容易地读取到服务器的networking通信,并将错误的坐标发送到服务器,从而允许他们去任何他们想要的地方。 我的问题是,有没有办法将这个位置消息编码到服务器之前,它退出客户端二进制文件,这是很难有人阅读? 即使是通过反汇编代码来尝试破解编码的人呢? 或所有的球员碰撞必须被服务器检测到?

将入站stream量添加延迟给你在线游戏的优势?

不会在入站stream量中添加延迟延迟,并将您的下载速度限制在较低但可播放的标准,让您在networking游戏(尤其是射击游戏)中占据优势? 因为你的镜头是否被注册为正常(使用上传/出站),而任何试图击中你(下载/入站)的内容将被延迟和/或缓慢?

多人游戏客户端物理

我试图处理客户端上的所有物理和正确的数据在服务器上。 例如 Client_1 wants to move right Server broadcasts that Clients simulating Client_1's movement Client_1 sends it's coordinates to the server (every 100ms) Server validates coordinates based on client's last position and last update (which is stored on the server) Server corrects Client_1's coordinates on every client 但是当FPS <60的玩家移动速度超过他们应该的时候,这会导致服务器传送回来。 我的问题基本上是如何检查x,y,而不用传送高延迟(或低fps)的玩家。 服务器: var now = Date.now(); […]

实现一个有效的服务器端检查方法

我正在制作一个基于networking的动作RPG游戏。 我不希望玩家作弊,但我也不希望游戏不停地等待服务器响应。 我做到了,所以游戏在客户端进行(为了响应),服务器进行例行检查来validation游戏状态。 但是这个系统非常麻烦。 服务器必须计算每一帧,并将整个游戏状态与客户端发送的游戏状态进行比较。 如果游戏状态中的任何内容彼此不同,则服务器将把玩家踢掉。 但是,这意味着游戏必须每秒发送30个请求,服务器必须及时计算出来。 如果很多人玩游戏,我不认为我的一个免费的Heroku测功机可以处理。 我如何实现在服务器端validation玩家动作的高效优雅的方式?

如何安全地提交分数?

我们有一个应用程序与几个迷你游戏,在每一个高分可以实现。 得分是通过请求一个终结点并将得分作为一个json传递给主体来提交的。 我们怎么能确定客户给我们正确的分数? 我们目前的解决 我们正在使用wss,所以中间的人应该是不可能的 客户端只有在使用设备进行身份validation之后才能访问terminal(通过游戏场) 至less在Android上我们混淆了代码 我们将每个分数保存在两个不同的variables中,并在发送其中一个之前进行比较 还有什么我们可以做的,以确保游戏? 在服务器端提交玩家交互并计算分数似乎相当有效,但由于我们几个完全不同的游戏,似乎在我们的情况下变得复杂。 什么是关于创建分数的散列和比较在服务器上?

我怎样才能防止在分布式多人游戏中作弊?

我最近一直在想的问题是如何创建一个没有集中游戏服务器的多人游戏。 是否有可能在玩家之间分配“服务器”职责? 我觉得被修改/被黑客户端改变多人游戏体验太容易了,有没有办法解决这个问题?

在多人游戏中,应该把所有不是用户input的东西都做到服务器端来防止作弊?

我以前听过这个说法,但是看起来有点不现实。 这是我正在使用的两个场景: 用户按下移动键,移动自己,并告诉服务器 – >服务器告诉其他客户端 要么 用户按下移动键,并告诉服务器 – >服务器计算用户是否被允许在那里移动 – >服务器告诉所有的客户端 看起来,选项一会让用户的运动感觉很浮动和延迟。 大多数多人游戏使用组合吗? (用户移动自己,从服务器获得确认,如果这是非法移动,则自动回到原来的位置)。也许这不是问题,我正在反思。