一种客户端外挂检测与自动封停的系统和方法与流程

文档序号:11425459阅读:2016来源:国知局
一种客户端外挂检测与自动封停的系统和方法与流程

本发明涉及一种客户端外挂检测与自动封停的系统和方法,属于网络信息安全领域。



背景技术:

随着互联网的不断普及和网络游戏的蓬勃发展,网络游戏逐渐成为人们娱乐生活的一部分,然而游戏外挂严重破坏游戏平衡,外挂使用者通过作弊的形式可以在短期内迅速获取一般用户通过正常游戏时间才可以获得的游戏收益,这极大的损害了所有正常用户游戏的利益和公平性。

外挂是所有游戏无法规避的一个问题。尤其是电脑客户端游戏,目前市场上流行的游戏都有外挂的问题。由于利益的驱动,制作外挂的技术能力越来越强。对抗的技术,成本也会越来越高。可以说无法杜绝外挂。

外挂是所有游戏面临的严峻问题,游戏外挂分类:游戏外挂按实现方式可以分为脱机式与内挂式。

脱机式是指完全脱离游戏客户端程序,可以与游戏服务器自由通讯的外挂程序。开发难度最大,普通的100多开,对游戏的危害最大,严重破坏游戏市场、影响玩家正常游戏、缩短游戏运营周期.正常开发流程:解决反调试保护措施;分析游戏启动参数;逆向分析出游戏加解密算法;逆向分析出地图等资源信息;分析登陆封包,实现脱机登陆及获取角色属性、装备、物品、技能相关信息;具体功能封包分析;整合寻路算法,实现基本挂机;根据工作室需求,完善功能。

内挂式是以游戏客户端程序为载体,依靠客户端程序来完成与游戏服务器的通讯。

目前比较流行的检测外挂的方法如下(1)~(6)所示:

(1)对关键apihook进行保护,进行网络相关的发送和接收;

(2)动态链接库注入检测可能是挂钩加载库上,也可能是定时检测进程模块;

(3)对于用od工具进行调试客户端,似乎都没有彻底的办法,一般就是加些花指令,加壳做些干扰,不过这也足以挡住大部分水平不够的作者;

(4)很多游戏都会对pe系统,od工具,按键精灵,简单游等进行检测,主要是枚举窗口名字,进程名字;

(5)按键类外挂检测,对于后台脚本主要是用获取光标及获取窗口类进行执行,检测窗口位置和鼠标位置是否正确,还有些是对wm_active消息进行处理;

(6)对于有些人说检测鼠标点击位置的重复度,这个多半是他们自己的猜想,这样做很容易造成误封。

目前比较流行的反外挂手段如下(1)~(8)所示:

(1)脱机挂以及内挂开发首先必须解决游戏反调试保护,目前主流思想是驱动层进行调试器进程检测、标志位检测,hook重要函数等方法以及给游戏执行文件加猛壳利用壳的功能实现反调;

(2)对游戏的启动参数进行加密,启动参数加密是比较容易忽视的地方,加密函数中利用获取瞬间计数之类获取变参,灵活应用注册表或文件操作,判断游戏是否从官方程序启动,再对相关代码段vmp;

(3)检测防多开,即同时开启多个客户端;

(4)代码完整性校验,使用crc算法对自身的完整效验勾挂函数的完整效验,一些重要代码段另外单独校验,校验相关代码段vmp,必要的话返回服务器中验证;

(5)游戏登陆相关封包进行处理;

(6)敌意进程、模块扫描;

(7)客户端失去响应;

(8)图片答题机制。

目前外挂应对方法一般为:算法解析、自建图库及人工答题。现有技术主要处理的方式是:加密(加壳)、检测、对抗。发现外挂以后禁止启动,禁止登陆,填验证码等等。

这些技术的主要缺点有:技术成本高,在利益的驱动下,开发外挂的技术会越来越强,反外挂的技术成本也会不断的上升;技术反外挂主要在客户端完成,而客户端程序外挂开发者可以完全控制,对抗难度很高;反外挂功能升级必须升级客户端,反应周期长(不可能随时更新),更新会影响到所有玩家;影响面大,成本高。

现有技术一般都是客户端做检测判断,实时处理。因为客户端受开发外挂者控制,开发外挂可以立即测试外挂效果,这样制作外挂调试效率高。



技术实现要素:

为了克服现有的网络游戏反外挂技术的不足,本发明的目的在于:提供一种客户端外挂检测与自动封停的系统和方法,通过客户端收集检测数据,在服务端用大数据分析的方法来综合分析客户端检测数据以及玩家的行为数据,根据分析结果对使用外挂的玩家进行灵活的处置,从而避免与外挂开发者进行技术竞赛,可以大大降低技术对抗成本,由于可以随时在服务端调整算法,指标,阈值,不需要更新客户端,可以大幅提高反外挂的效率并降低了成本。

本发明的技术方案包括一种客户端外挂检测与自动封停的系统,包括客户端、数据收集模块、数据存储模块、数据分析模块、数据反馈模块及服务器,其特征在于:数据采集模块,用于提供数据交互接口,建立用于采集客户端信息的线程,使用上述线程对客户端数据进行采集,并将所采集到的客户端数据上传到服务器;数据存储模块,用于接收发送至服务器的客户端数据,建立数据库用于对客户端对应游戏数据进行存储,以及,存储用于对游戏外挂进行分析的外挂判断数据,其中的游戏数据包括游戏角色信息和游戏行为数据;数据分析模块,用于使用大数据分析接收客户端数据并与外挂判断数据进行对比分析,分析客户端数据是否具备外挂特征,并将分析结果发送至数据反馈模块;数据反馈模块,用于接收数据分析结果,根据客户端数据所具有用于外挂特征数目,对游戏客户端进行对应的处理。

根据所述的客户端外挂检测与自动封停的系统,其中数据采集模块包括:接口子模块,提供创建、连接、发送及接收的接口,用于发送客户端数据,并提供接口编辑模块,用于对接口进行扩展编辑;游戏数据采集子模块,与游戏主线程建立连接,用于接收游戏客户端的游戏主线程监控采集的客户端进程相关的数据信息,所述客户端进程相关的数据信息包括但不限于游戏客户端加载启动会加载的动态库、动态库名、动态库全路径及游戏客户端启动调用父进程信息;pc数据采集子模块,用于采集与客户端进程无关的数据信息,所述与客户端进程无关的信息包括但不限玩家pc当前正在运行的应用程序、应用程序名、安装的目录全路径、玩家pc正在打开的窗口、窗口名、窗口标题名。

根据所述的客户端外挂检测与自动封停的系统,所述的数据存储模块包括:数据接收子模块,用于接收传送到服务器的客户端数据,接收由外部数据所更新的最新外挂特征信息,所述外部数据包括但不限于玩家举报及人工获取的数据;数据暂存子模块,暂存数据采集模块的客户端数据,经数据分析模块分析后若有独特的外挂特征,则添加该特征到数据库;

数据库存储子模块,建立包括现有的多个游戏角色相关信息、游戏行为数据和外挂判断数据的数据库,并可以实时更新。

根据所述的客户端外挂检测与自动封停的系统,所述的数据分析模块包括:运行项分析子模块,分析客户端运行的可执行程序文件,包括但不限于文件名称特征,是否启动游戏的父进程;加载项分析子模块,分析客户端加载的动态链接库与客户端加载的解释性编译脚本,包括但不限于文件名称、脚本名称、路径、非官方动态链接库及非官方脚本;数字分析子模块,对比分析客户端核心动态链接库文件md5值,玩家客户端加载的官方动态链接库的md5值是否跟官方一致以及分析客户端加载的文件数量;标记子模块,根据不同的使用外挂情况对使用外挂的玩家进行不同性质的标记。

根据所述的客户端外挂检测与自动封停的系统,所述数据反馈模块包括:接收所述分析模块的分析结果,根据不同的标签对客户端发送不同的处理请求,进一步,所述客户端对处理请求对应出的处理,其中的处理包括对客户端游戏账号进行警告及封停处理。

本发明的技术方案还包括一种客户端外挂检测与自动封停的方法,其特征在于,该方法包括:提供数据交互接口,建立用于采集客户端信息的线程,使用上述线程对客户端数据进行采集,并将所采集到的客户端数据上传到服务器;接收发送至服务器的客户端数据,建立数据库用于对客户端对应游戏数据进行存储,以及,存储用于对游戏外挂进行分析的外挂判断数据,其中的游戏数据包括游戏角色信息和游戏行为数据;使用大数据分析接收客户端数据并与外挂判断数据进行对比分析,分析客户端数据是否具备外挂特征,并将分析结果发送至数据反馈模块;接收数据分析结果,根据客户端数据所具有用于外挂特征数目,对游戏客户端进行对应的处理。

在一个优选的实施方案中,该方法还包括:提供创建、连接、发送及接收的接口,发送客户端数据,并提供接口编辑模块,用于对接口进行扩展编辑;与游戏主线程建立连接,接收游戏客户端的游戏主线程监控采集的客户端进程相关的数据信息,所述客户端进程相关的数据信息包括但不限于游戏客户端加载启动会加载的动态库、动态库名、动态库全路径及游戏客户端启动调用父进程信息;采集与客户端进程无关的数据信息,所述与客户端进程无关的信息包括但不限玩家pc当前正在运行的应用程序、应用程序名、安装的目录全路径、玩家pc正在打开的窗口、窗口名、窗口标题名。

在一个优选的实施方案中,该方法还包括:接收传送到服务器的客户端数据,接收由外部数据所更新的最新外挂特征信息,所述外部数据包括但不限于玩家举报及人工获取的数据;暂存数据采集模块的客户端数据,经数据分析模块分析后若有独特的外挂特征,则添加该特征到数据库;建立包括现有的多个游戏角色相关信息、游戏行为数据和外挂判断数据的数据库,并可以实时更新。

在一个优选的实施方案中,该方法还包括:运行项分析子模块,分析客户端运行的可执行程序文件,包括但不限于文件名称特征,是否启动游戏的父进程;加载项分析子模块,分析客户端加载的动态链接库与客户端加载的解释性编译脚本,包括但不限于文件名称、脚本名称、路径、非官方动态链接库及非官方脚本;数字分析子模块,对比分析客户端核心动态链接库文件md5值,玩家客户端加载的官方动态链接库的md5值是否跟官方一致以及分析客户端加载的文件数量;标记子模块,根据不同的使用外挂情况对使用外挂的玩家进行不同性质的标记。

在一个优选的实施方案中,该方法还包括:接收所述分析模块的分析结果,根据不同的标签对客户端发送不同的处理请求,进一步,所述客户端对处理请求对应出的处理,其中的处理包括对客户端游戏账号进行警告及封停处理。

本发明的有益效果为:

1.不需要跟外挂做技术对抗,大大降低技术成本;

2.使用大数据分析技术方便调整算法以及判断指标,提高外挂判断准确性;

3.所有处理都在服务端完成,方便随时对外挂处理调整,不需要客户端更新;

4.利用中间键技术,实现数据跟游戏实时交互,实时处理角色;

5.使用多种处理方式,不纯粹是封停对玩家造成不可挽回的伤害,导致玩家流失。让玩家觉得使用外挂得不偿失而主动不使用外挂;

6.利用外部数据,人工获取的数据,完善外挂判断数据,提高准确性。

附图说明

图1所示为根据本发明实施方式的总体结构图;

图2所示为根据本发明实施方式的封停流程图;

图3所示为根据本发明实施方式的数据采集流程图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。本发明的客户端外挂检测与自动封停的系统和方法适用于游戏运营时对外挂进行自动检测和封停处理。

图1所示为根据本发明实施方式的总体结构图。

本发明的客户端外挂检测与自动封停的系统包括客户端、数据收集模块、数据存储模块、数据分析模块、数据反馈模块及服务器,其特征在于:数据采集模块,用于提供数据交互接口,建立用于采集客户端信息的线程,使用上述线程对客户端数据进行采集,并将所采集到的客户端数据上传到服务器;数据存储模块,用于接收发送至服务器的客户端数据,建立数据库用于对客户端对应游戏数据进行存储,以及,存储用于对游戏外挂进行分析的外挂判断数据,其中的游戏数据包括游戏角色信息和游戏行为数据;数据分析模块,用于使用大数据分析接收客户端数据并与外挂判断数据进行对比分析,分析客户端数据是否具备外挂特征,并将分析结果发送至数据反馈模块;数据反馈模块,用于接收数据分析结果,根据客户端数据所具有用于外挂特征数目,对游戏客户端进行对应的处理。

图2所示为根据本发明实施方式的封停流程图。其主要包括数据的采集、数据的分析及封停处理。

其中数据的采集依次包括采集客户端数据,将采集到的客户端数据上传至服务器,以及,获取客户端对应的游戏角色行为数据和外部数据;

其中数据的分析包括使用大数据对采集得到的数据与现有外挂数据进行对比,得到相应的分析结果,现有外挂数据会进行实时的更新;

其中封停的处理包括根据对比结执行相应的封停处理。

通过客户端收集数据,以及关联游戏角色相关的信息,以及游戏行为数据,进行综合分析。确定外挂。

客户端收集数据分析项有:

1.客户端运行的应用程序文件:文件名称特征,是否是启动游戏的父进程

2.客户端加载的动态库:文件名称,路径,非官方动态库

3.客户端加载的lua脚本:脚本名称,路径,非官方脚本

4.客户端核心动态库文件md5值,玩家客户端加载的官方动态库的md5值是否跟官方一致

5.客户端加载的文件数量

通过数据分析,对使用外挂的玩家进行不同性质的标签。不同的标签进行不同的处理。比如大型,批量登录的破坏游戏资源的,进行永久封停。对于多开参加游戏活动影响其他玩家的,对玩家进行活动参与限制。对于自动高频率释放技能的,对玩家进行技能失效处理。

图3所示为根据本发明实施方式的数据采集流程图。其中包括

(1)和客户端进程相关联的,如收集游戏客户端加载的独立文件和游戏客户端加载的动态库;

(2)和客户的进程无关的,如终端正在运行的其他窗口进程信息。

游戏客户端启动后会开一个收集信息的线程,用于搜集信息和上传信息。

和客户端相关的有一部分是游戏主线程自己进行监控收集,另一部分是在收集线程监控收集。

信息收集收集内容如下:

玩家电脑当前正在运行的应用程序,应用程序名,安装的目录全路径;

玩家电脑正在打开的窗口,窗口名,窗口标题名;

游戏客户启动会加载的动态库,动态库名,动态库的全路径;

游戏客户端启动调用父进程信息。

引擎模块加入加载文件统计:使用统一接口读取文件;取文件的时候有读取打包文件和读取独立文件,在读取独立文件文件的时候,会把文件名和全路径名保存起来。

以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。

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