当前位置: 首页 >  在线学习 >  谈谈游戏中如何防外挂和防破解

谈谈游戏中如何防外挂和防破解

导读:前言.这篇文章写于2018年一直在草稿箱,当时在某厂做手游,现在回过头来看,这些方法依然有用。.对于一些外挂软件,现在我们借力AI,针对性上报玩家的行为序列log,通过AI分析是否外挂,然后把数据交由运营处理。.在我开发一款大型mmoarpg过程中和服务器主程讨论游戏中防外挂、防

前言

这篇文章写于2018年一直在草稿箱,当时在某厂做手游,现在回过头来看,这些方法依然有用。

对于一些外挂软件,现在我们借力AI,针对性上报玩家的行为序列log,通过AI分析是否外挂,然后把数据交由运营处理。

在我开发一款大型mmoarpg过程中和服务器主程讨论游戏中防外挂、防破解的实现和改动,讨论内容主要有如下:

防加速

服务器验证,客户端配合

内存数据加密

客户端内存加密,Unity的AssetStore上插件可实现。

尤其是对于奖励,领取条件判断及二次领取服务器一定要做检验,不要依赖于客户端。客户端所有数据都可以被修改。

协议CD

防止频繁的请求某个协议(300毫秒~1000毫秒内只响应一次)

【修改内容】

1.所有的协议都增加了CD限制,例如CS_MAP_MOVE走路协议,CD间隔是200毫秒,服务器每次收到协议后先检查和上次的间隔,如果间隔小于CD*0.8,则可以认为是网络阻塞或外挂,服务器拒绝处理协议。具体限制向服务器同学拿最新的协议CD配置。

【影响点】

1.客户端所有的协议发送。

【测试点】

修改影响到了协议收发函数对于CD限制的逻辑,以及功能模块协议限制逻辑。

测试需要验证指令是否能正常发送,同时功能模块协议限制是否正常

协议加密

在协议头增加字节数

防WPE重复发包

防重复领取,及重复进入。

监控非充值途径获得货币

所有的货币都有来源

移动防加速

有几点注意:

1、程序这边做了1.5倍的容错(速度 时间 1.5 > Client 移动)

2、当跳跃的时候,忽略该判断,走跳跃自己的判断

3、当判断前端发送的位置存在异常的时候,会被拉回上一个点

测试哥需要测试,走,疾走,一边跳跃一边行走时候是否有异常

防加速有以下几个修改点:

1、人物移动协议防加速,该检测逻辑放在玩家进程

2、人物强制矫正位置协议防加速,该检测逻辑放在玩家进程

3、增加人物传送点传送到下一个点位置协议,该协议功已经制定但是需要前端先行,故这部分还没做开发。

4、宠物和召唤物移动协议防加速,该检测放在场景进程

5、增加宠物和召唤物召回协议,该协议的检测暂时屏蔽,需要前端支持了该协议后,后端开启限制

测试需要过一下

玩家 移动,跳跃,传送点跳跃

宠物和召唤物 移动,召回等操作

后面补充了一下几个机制:

1,跳跃的时候行走,使用新的行走协议

2,普通行走处理了避免粘包,或者前端卡顿出现同时发送协议到后端但又属于正常情况的发送的情况

3,玩家冲锋或者被别人推移的时候,增加了容错时间段,该时间段内不处理异常的行走数据包

4,增加了传送点传送监控

5,玩家传送点跳跃落地后,增加了容错时间段,该时间段内不处理异常的行走数据包

6,前端在卡顿的时候,会导致发送行走包路程不符合要求的情况,后端做了容错次数

反外挂加速

当前冲锋技能可以穿越地图边缘的阻挡墙

后端做了优化,在释放冲锋,或者被boss击退的时候,有0.4秒的时间内,使用强制矫正协议能把角色正常拉回来,而不是把角色还原到不可走点

【系统漏洞】未限制加速

描述:未限制加速,导致攻速加快、移速加快

修复一下问题:

1,单独技能CD无效问题

2,人物死亡后,宠物释放技能攻击无效问题

3,增加了技能释放硬直时间

网络波动状态下容易被拉回

内容
  • 一文揭秘DDD到底解决了什么问题
    一文揭秘DDD到底解决了什么问题
    2023-12-01
    DDD作为架构设计思想帮助微服务控制规模复杂度,那它是怎么做到的呢?.一、架构设计是为了解决系统复杂度.谈到架构,相信每
  • Unity实现3D物体遮挡血条
    Unity实现3D物体遮挡血条
    2023-12-08
    Unity 实现3D物体遮挡血条.######.前言:在游戏开发中,我们经常会遇到UI和3D物体的层级遮挡问题,最常见的
  • 一个公式让你35岁以后能越过越好!大神修炼心法
    一个公式让你35岁以后能越过越好
    2023-12-08
    前言.Cocos 的老铁,如果你这几天没有被麒麟子给卷到?那说明你还没有真正进入 Cocos 圈子里来。为什么这么说呢?
  • C++学习-static
    C++学习-static
    2023-12-02
    全局变量使用:.作用是限定全局变量的作用范围,只能在当前文件使用,类似给它加了个private属性。.其他文件即使使用e
  • 【Oculus Interaction SDK】(五)设置不同的抓握手势
    【Oculus Interact
    2023-12-10
    前言.前段时间 Oculus 的 SDK.频繁更新,很多已有的教程都不再适用于现在的版本了。本系列文章的主要目的是记录现
  • 吃透单调栈(2)——解两道Hard题:接雨水、柱状图中最大的矩形问题
    吃透单调栈(2)——解两道Har
    2023-12-04
    怎么想到要用单调栈的?.这类题目的数据通常是一维数组,要寻找任一个元素的右边或者左边第一个 比自己大 或者小 的元素的位