一种游戏内运行速度异常的检测方法、装置及游戏系统与流程

文档序号:11681132阅读:340来源:国知局
一种游戏内运行速度异常的检测方法、装置及游戏系统与流程

【技术领域】

本发明涉及游戏技术领域,特别是涉及一种游戏内运行速度异常的检测方法、装置及游戏系统。



背景技术:

游戏中,玩家常常使用加速器进行游戏加速达到非法获利。通过加速,玩家可以快速在场景中移动、战斗、完成任务等,影响游戏平衡性。不管是端游还是手游,通常游戏都是通过“帧”这一单位来进行画面刷新的,而每帧所需要的时间间隔依赖于客户端系统函数的本地时间。加速软件通过修改或注入本地系统函数篡改时间值,使得游戏进程获取到“更快”的时间,从而达到加速目的。

传统的检测技术以客户端检测为主,通过检测客户端常见加速器的进程名或者相关时间函数有没有被注入进行防御,但是由于游戏进程本身不具有系统级权限,加速器可以通过隐藏进程名等方式绕过检测。较新的检测技术加入了服务器校验,例如通过记录客户端完成某一副本的最小时间与服务端预设的最小时间进行比较,如果时间更少则判断为加速。但是,这种方法维护成本高,在游戏数值改动后需要随之调整。另外由于网络延时等原因存在较高的误报率,而且对于加速不够明显的情形或者客户端加速后故意拖延副本完成时间的情形无法有效识别。再者,这些检测方法一般都是通过日志记录的方式,事后由运营进行日志分析做进一步处理,发现不够及时。



技术实现要素:

本发明其中一具体实施方式所要解决的技术问题是:弥补上述现有技术的不足,提出一种游戏内运行速度异常的检测方法、装置及游戏系统,可稳定地检测到运行速度异常情形,且检测速度快,检测也较为及时。

本发明其中一具体实施方式的技术问题通过以下的技术方案予以解决:

一种游戏内运行速度异常的检测方法,包括以下步骤:s1,接收客户端按照设定频率发送的数据包;所述数据包携带有客户端的唯一识别码;s2,对预设定时时长内接收到的数据包的个数计数;所述定时时长大于等于最大网络延时时长;s3,比较所述数据包的个数与第一阈值和/或第二阈值的大小,在所述数据包的个数大于所述第一阈值或小于所述第二阈值时,记为一次运行速度异常情形;其中,所述第一阈值根据所述定时时间、客户端发送数据包的频率以及加速倍率值k1确定得到,所述加速倍率值为设定的需检测到的加速倍率;所述第二阈值根据所述定时时间、客户端发送数据包的频率以及减速倍率值k2确定得到,所述减速倍率值为设定的需检测到的减速倍率;s4,统计连续出现所述运行速度异常情形的次数,在连续次数超过设定次数时,判断所述客户端存在运行速度异常。

本发明其中一具体实施方式的技术问题通过以下进一步的技术方案予以解决:

一种游戏内运行速度异常的检测装置,包括接收模块,计数模块,比较模块,统计模块和判断模块;所述接收模块用于接收客户端按照设定频率发送的数据包;所述数据包携带有客户端的唯一识别码;所述计数模块用于对预设定时时长内接收到的数据包的个数计数;所述预设定时时长大于等于最大网络延时时长;所述比较模块用于比较所述数据包的个数与第一阈值和/或第二阈值的大小,在所述数据包的个数大于所述第一阈值或小于所述第二阈值时,记为一次运行速度异常情形;其中,所述第一阈值根据所述定时时间、客户端发送数据包的频率以及加速倍率值k1确定得到,所述加速倍率值为设定的需检测到的加速倍率;所述第二阈值根据所述定时时间、客户端发送数据包的频率以及减速倍率值k2确定得到,所述减速倍率值为设定的需检测到的减速倍率;所述统计模块用于统计连续出现所述运行速度异常情形的次数;所述判断模块用于在所述统计模块统计的连续次数超过设定次数时,判断所述客户端存在运行速度异常。

一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行以实现上述所述的游戏内运行速度异常的检测方法。

一种游戏系统,包括客户端和接收端;所述接收端为游戏运行对应的服务器或者专用接收设备,所述接收端中处理器执行上述所述的游戏内运行速度异常的检测方法。

本发明其中一具体实施方式与现有技术对比的有益效果是:

本发明其中一具体实施方式的游戏内运行速度异常的检测方法,通过检测客户端发送的数据包进行异常情形判定,这样,玩家只要对客户端进行了变速操作就必然导致数据包数目的变化,从而无需对客户端本地进行任何检测,不需要游戏客户端具有系统权限,而且无论是微变速还是客户端行为故意拖延的情形,都能检测到,检测更为全面。同时,本发明其中一具体实施方式的方法中通过连续多次进行异常情形检测判定,综合考虑了网络波动造成的影响,从而可有效避免网络波动带来的误判,确保检测准确性。本发明其中一具体实施方式的检测范围以及准确性较高,从而检测更为稳定。再者,本发明其中一具体实施方式的检测方法通过心跳包检测,检测过程运算量小,检测速度快;而且无需等待副本完成即能随时实现检测,识别到加速或减速行为,检测也较为及时。

【附图说明】

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,显然,附图所描述的实施方式仅仅是本发明一部分的实施方式,而不是全部的实施方式;本发明的示意性实施方式及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明具体实施方式一的游戏内运行速度异常的检测方法流程图;

图2是本发明具体实施方式一中在网络波动下假设只进行一次加速检测的流程示意图;

图3是本发明具体实施方式一中在网络波动下假设连续三次检测到加速的流程示意图;

图4是本发明具体实施方式二的游戏内运行速度异常的检测方法流程图;

图5是本发明具体实施方式三的游戏内运行速度异常的检测装置的结构示意图。

【具体实施方式】

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都应当属于本发明保护的范围。

下面结合具体实施方式并对照附图对本发明做进一步详细说明。

具体实施方式一

如图1所示,为本具体实施方式中检测游戏内运行速度异常的方法的流程图,包括以下步骤:

s1,接收客户端按照设定频率发送的数据包;所述数据包携带有客户端的唯一识别码。

客户端运行游戏时,按照设定发送频率定时向服务器端发送数据包,本具体实施方式的检测方法中接收该数据包,以便后续统计数据包个数识别速度异常情形。数据封包携带传输时的客户端唯一识别码以便于进行后续识别。客户端发送数据包的传输方式可采用tcp连接,优选地,经过一定的加密处理以防止数据包被截获、篡改、模拟。

s2,对预设定时时长内接收到的数据包的个数计数;所述预设定时时长大于等于最大网络延时时长。

网络最大延时时长是指在一种连接传输方式下,例如tcp传输下,游戏中设定的所允许的网络延时最大时间。设最大网络延时时长为t,则定时时长设置为大于等于t。统计这一段定时时长内接收到的数据包的个数。假设最大延时为60s,定时时长设置为60s,则最坏的情形下,如果60s内都没有收到任何数据包,那么游戏客户端可判定为断线。这样设置的目的是使得当游戏网络出现异常无法正常连接的时候,可以有效发现并及时纠正判断结果。

s3,比较所述数据包的个数与第一阈值和/或第二阈值的大小,在所述数据包的个数大于所述第一阈值或小于所述第二阈值时,记为一次运行速度异常情形;其中,所述第一阈值根据所述定时时间、客户端发送数据包的频率以及加速倍率值确定得到,所述加速倍率值为设定的需检测到的加速倍率;所述第二阈值根据所述定时时间、客户端发送数据包的频率以及减速倍率值k2确定得到,所述减速倍率值为设定的需检测到的减速倍率。

具体地,将预设定时时长内接收到的数据包的个数与第一阈值进行比较,如果超过,则表明定时时长内客户端发送的数据包过多,即对应客户端中存在加速的情形。第一阈值的确定根据统计的定时时间时长、客户端发送数据包的频率以及加速倍率值确定得到。具体地,假设定时时长a=60s,心跳包发送频率为4s,需检测到加速0.6倍及以上的情形,即设定加速0.6倍及以上判定为异常非法,则计数器阈值为:60/4*(1+0.6)=24。也即,理论正常情形下,定时时间段60s内应该接收到15个数据包,当接收的数据包括大于等于24个时,可判定为超速,且超速0.6倍。当然,如果需检测到其余加速倍率下的异常情形,例如需检测到0.4倍的加速,则按照式子a/f*(1+0.4)相应确定出阈值的数值为21即可。通过加速倍率值综合设定第一阈值的大小,可识别加速不明显的微加速情形,通过比较数据包个数与相应阈值的大小关系,即可判断出相应微加速的异常情形。当然,如果要识别出微加速情形,后续统计的连续次数也相应较多,可能耗费的时间也较多。因此该加速倍率值、阈值等的设定可根据检测方法的使用者对检测灵敏度以及检测效率的要求综合设定。

与上述加速检测类似,也可以实现减速检测。具体地,将预设定时时长内接收到的数据包的个数与第二阈值进行比较,在所述数据包的个数小于第二阈值时,记为一次减速异常情形;其中,所述第二阈值根据所述定时时间、客户端发送数据包的频率以及减速倍率值确定得到,所述减速倍率值为设定的需检测到的减速倍率。具体地,第二阈值n2的值根据如下过程确定得到:其中,a表示定时时长,f表示客户端发送数据包的频率,k2表示减速倍率值。例如,假设定时时长为60s,心跳包发送的频率为4s,需检测到减速0.6倍及以上的情形,即减速0.6倍以上判定为非法,那么计数器阈值为:60/4*(1-0.6)=6。当计数的60s内接收的数据包个数少于6个时,可判定是减速异常。

s4,统计连续出现所述运行速度异常情形的次数,在连续次数超过设定次数时,判断所述客户端存在运行速度异常。

当出现一次运行速度异常(加速异常或减速异常)情形时,可能是由于网络波动造成延时导致的,因此,通过统计多次连续异常的情形,有效避免网络波动造成的影响,最终判断出确系运行速度异常。

具体地,当检测加速异常时,设定次数n大于等于1/k1,这是因为当需检测加速倍率为k1的情形时,网络波动最多影响接下来1/k1次的检测过程。具体地,在网络不稳定的情况下,客户端上传到数据接收端的心跳包可能并不是按照原有的上传频率,会随着网络的波动而出现一定的波动性,但是由于设置了合理的检测间隔,网络波动最多影响相邻几次的数据接收。例如,假设设定次数n设置为1,客户端没有经过加速,那么根据图2,假设上次检测由于网络异常所有心跳包都将在下次检测才接收到,那么会被检测判定为加速1倍。假设设定次数n设置为3,客户端没有经过加速,那么根据图3,由于当前检测只会受到前一次检测的影响,那么最坏情况,如果系统判定加速1/3倍以上为非法,那么根据前面异常计数的规则,为保证连续三次都能检测到加速1/3倍以上,那么只能是:

上次检测网络异常,所有k个数据包全部延时在第一次检测的时候收到,这里k是正常情况接收到的心跳包个数。此时第一次检测时候应该有2k个数据包。

为达到连续3次都有延时接收的数据,需将k个数据包平均分配到3次检测过程中,即第一次检测时间段内检测其中的1/3k个数据包,余下2/3k个数据包延时到后面两次检测时间段内,此时第一次检测最终接收到2k-2/3k=(1+1/3)k,第二次检测时有k+2/3k个数据包。

第二次检测时间段内检测其中的1/3k个数据包,余下1/3k个数据包延时到第三次检测,此时第二次检测最终剩余k+2/3k-1/3k=(1+1/3)k,第三次检测时有k+1/3k个数据包。

此时三个检测时间段都能检测到1/3倍加速。换言之,如果需要识别加速超过1/3倍以上的加速情况,一次网络波动导致的延时在最坏情况下是平均分配,最多会影响到接下来3次的检测过程均出现异常情形,因此可设置n=3。当连续超过3次出现异常时,例如为4次出现了异常,则可确定确系是加速异常导致的,因为如果是网络波动延时,最多是导致3次连续出现异常。

综上,本具体实施方式在判断异常时,设置连续次数与n(大于等于1/k1)进行比较,可有效避免网络波动造成的影响,避免误判,确保方法检测地准确性。需说明的是,对于大部分游戏,玩家选择加速1/3倍或者以下几乎不会影响游戏环境,因此对于k1=1/3的加速通常是容忍的,不将其视为非法。所以实际上,将n取值定为3或以上,可满足大部分的检测要求。

类似地,对于减速检测的情形,设定次数n大于等于1/k2,这样,通过统计连续多次出现减速异常的次数,如果超过设定次数,可确系是减速异常,从而有效避免网络波动造成的影响。

本具体实施方式的方法可以根据检测精度的需求灵活调整n的值,检测精度为1/n(可检测到1/n的加速倍率或者减速倍率),检测时间为n*t,n越大,精度越高,检测时间越长。

优选地,步骤s3中还包括:在所述数据包的个数为0时,判定为客户端断线情形。如果在预设定时时长内没有收到任何数据包,那么判定游戏客户端为断线,从而有效发现游戏网络出现异常无法正常连接的情形,及时纠正异常判断结果。

本具体实施方式的检测方法,通过检测客户端发送的数据包进行异常情形判定,检测更稳定,检测速度快而且检测更及时。具体地:

1)稳定性高:相比于客户端检测方法,本具体实施方式的方法中,由于保持了目的一致性,玩家只要对客户端进行了变速操作就必然导致心跳包数目的变化,无需对客户端本地进行任何检测,不需要游戏客户端具有系统权限;相比于副本完成最小时间检测方法,本具体实施方式的方法的检测结果不受玩家行为控制影响,玩家可以通过不攻击等方式故意不让游戏结束影响完成时间,但玩家不能影响客户端心跳包发送行为,检测稳定性更高。再者,本具体实施方式的将网络延时作为技术处理的难点加以克服,通过设置设定次数的值大于等于1/k1或1/k2,可有效避免网络波动导致的误判,确保准确性。在此基础上,通过第一阈值或者第二阈值的调节设定,可检测到微加速或微减速的情形,检测范围更广。

2)识别速度快:相比于副本完成时间检测方法,需要等待副本完成才能检测,本具体实施方式通过心跳包检测,往往无需等待副本完成即可识别到加速或减速行为,识别速度快且及时。

本具体实施方式还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行以实现上述所述的游戏内运行速度异常的检测方法。

具体实施方式二

本具体实施方式相对于实施方式一为更具体的情形,通过计数器、检测定时器、加速异常计数器和减速异常计数器的协同作用,实现上述检测过程。

检测系统中,针对数据发送设备通过网络(tcp)链路向数据接收端发送数据封包,并启动发送定时器。

其中,数据发送设备是客户端,数据接收端可以是游戏运行对应的服务器,也可以是专用接收设备。数据包携带有客户端唯一识别码便于进行后续识别。传输方式采用tcp连接,并经过一定的加密处理防止数据包被截获、篡改、模拟。

发送定时器可以使用客户端专用定时器,或者根据客户端帧刷新时间设置定时器,发送定时器用于按照设定频率定时发送上述数据包,根据其定时特点,可以称之为心跳包。本具体实施方式中,心跳包的发送频率为4s。

数据发送设备只负责数据包的发送,不需对设备本身(客户端)进行其他任何检测,有效避免了游戏客户端权限不够的问题。另外,由于发送定时器依赖于客户端时间系统,所以只要客户端发生了加速或减速的异常行为,发送定时器必然也会准确加速或者减速,从而发送数据包加速或减速,后续识别检测可达到识别率100%。

数据接收端上运行检测方法,如图4所示,包括以下步骤:

s101、数据接收端在接受到第一个数据包之后,启动并初始化数据接收端一端的计数器、检测定时器。

其中,计数器有三个,一个是数据包计数器,一个是加速异常计数器,一个是减速异常计数器。数据包计数器用于对数据接收端获取到的数据包个数进行计数,初始化的时候即计数为1。加速异常计数器或者减速异常计数器用于记录当前连续检测到加速/减速异常的次数,初始化为0。

检测定时器用于定时触发数据接收端的检测逻辑判断是否加速/减速。检测定时器的定时时间根据游戏的最大网络延时时间设定,设最大网络延时时长为t,则定时时长可设置为大于等于t,所指网络最大延时时长是指在tcp传输时游戏所允许的网络延时最大时长。

s102、数据接收端进入消息处理循环,不断接收数据发送设备发送的数据。

接收端每接收到一个心跳数据包,数据包计数器+1。具体地,数据包计数器维护的是一个字典,键指向的是客户端的唯一识别码,键值为对应客户端已经发送的数据包的个数。

s103、检测定时器每隔定时时长定时触发比较检测过程。比较检测逻辑如下:

如果数据包计数器计数大于预设的第一阈值,则识别为加速,加速异常计数器+1,减速异常计数器清零。

这里预设的第一阈值n1根据定时时间a、数据包的发送频率f以及需检测到的加速倍率值设定。具体地,假设定时时间a=60s,数据包的发送频率为4s,加速0.6倍以上判定为非法,则第一阈值n1为:60/4*(1+0.6)=24。

如果数据包计数器计数小于预设的第二阈值,则识别为减速,减速异常计数器+1,加速异常计数器清零。

这里预设的第二阈值n2根据定时时间a、数据包的发送频率f以及需检测到的减速倍率值设定。具体地,假设定时时间a=60s,数据包的发送频率为4s,减速0.6倍以上判定为非法,则第二阈值n2为:60/4*(1-0.6)=6。

如果数据包计数器的计数在第一阈值和第二阈值之间,则识别为非变速,加速异常计数器清零,减速异常计数器清零。

如果数据包计数器为0,判定为客户端已经断线,回到s101。

上述比较检测逻辑执行完毕,将数据包计数器清零。

同样的,异常计数器维护的也是一个字典,键指向客户端的唯一识别码,键值为连续出现异常的次数。中间只要有一次没有异常,则会清零。

s104、当检测到异常计数器达到一定的数值n,说明当前客户端连续n次识别为加速(减速),判定游戏客户端存在加速(减速)异常情形,可以直接给出提示并采取相应措施,例如强制退出客户端,同时异常计数器清零。

本具体实施方式通过计数器、检测定时器、加速异常计数器和减速异常计数器的协同作用,实现上述加速(减速)异常情形的检测,控制过程简便,实现的检测同样具有稳定性高、检测速度快且及时的效果。

具体实施方式三

本具体实施方式中提供一种游戏内运行速度异常的检测装置,包括接收模块100,计数模块200,比较模块300,统计模块400和判断模块500。

接收模块100用于接收客户端按照设定频率发送的数据包。接收的数据包携带有客户端的唯一识别码。优选地,如果客户端发送的数据包有经过压缩加密处理,则检测装置还可包括数据包解析模块600,用于对压缩加密数据进行解压解密处理,并解析出客户端的唯一id。

计数模块200用于对预设定时时长内接收到的数据包的个数计数。定时时长大于等于最大网络延时时长。

比较模块300用于比较数据包的个数与第一阈值和/或第二阈值的大小,在数据包的个数大于第一阈值或小于所述第二阈值时,记为一次运行速度异常情形;其中,第一阈值根据定时时间、客户端发送数据包的频率以及加速倍率值k1确定得到,加速倍率值为设定的需检测到的加速倍率;第二阈值根据所述定时时间、客户端发送数据包的频率以及减速倍率值k2确定得到,所述减速倍率值为设定的需检测到的减速倍率。

具体地,按照式子a/f*(1+k1)相应确定出第一阈值的数值,a表示定时时间,f表示客户端发送数据包的频率。通过加速倍率值k1综合设定第一阈值的大小,可识别加速不明显的微加速情形,通过比较数据包个数与相应阈值的大小关系,即可判断出相应微加速的异常情形。当然,如果要识别出微加速情形,后续统计模块需统计的连续次数也相应较多,可能耗费的时间也较多。因此该加速倍率值、阈值等的设定可根据检测装置的使用者对检测灵敏度以及检测效率的要求综合设定。

按照式子a/f*(1-k2)相应确定出第二阈值的数值,a表示定时时间,f表示客户端发送数据包的频率。通过减速倍率值k2综合设定第二阈值的大小,可识别减速不明显的微减速情形,通过比较数据包个数与相应阈值的大小关系,即可判断出相应微减速的异常情形。当然,如果要识别出微减速情形,后续统计模块需统计的连续次数也相应较多,可能耗费的时间也较多。因此该减速倍率值、阈值等的设定可根据检测装置的使用者对检测灵敏度以及检测效率的要求综合设定。

统计模块400用于统计连续出现运行速度异常情形的次数。

判断模块500用于在统计模块400统计的连续次数超过设定次数时,判断客户端存在运行速度异常。通过记录统计连续多次出现运行速度异常的次数,多次连续异常的检测可以在网络不稳定的情况下有效地确保检测准确性,提高检测精度。理论上,连续n次检测,可以准确检测到1/n倍以上的运行速度异常情况,n越大精度越高。

本具体实施方式的检测装置,通过检测客户端发送的数据包进行异常情形判定,检测更稳定,检测速度快而且检测更及时。

本具体实施方式还提供一种游戏系统,包括客户端和接收端。其中,客户端按照设定频率向数据接收设备发送数据包。接收端可为游戏运行对应的服务器或者专用接收设备。接收端中处理器执行上述所述的游戏内运行速度异常的检测方法。本具体实施方式的游戏系统,可检测出客户端存在加速或减速异常的情形,且检测更稳定,检测速度快而且检测更及时。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下做出若干替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1