一种防止游戏外挂的方法及系统的制作方法

文档序号:9898414阅读:2438来源:国知局
一种防止游戏外挂的方法及系统的制作方法
【技术领域】
[0001]本发明涉及互联网技术领域,尤其涉及一种防止游戏外挂的方法及系统。
【背景技术】
[0002]随着网络游戏的逐步普及,以及网络游戏的丰富的利润,游戏外挂软件也由此衍生,外挂是指利用电脑技术专门针对一个或多个网络游戏,用来改变游戏中的部分程序而制作成的作弊程序,仿冒合法的用户不断的向服务器请求游戏资源以及获取游戏资源。
[0003]通过外挂的方式,游戏玩家可以轻易得到其他正常用户无法得到,或者通过长期运行程序才能得到的游戏效果,从而对游戏本身和正常游戏玩家造成严重影响,破坏了游戏的真实性、公平性和准确性;同时外挂容易造成服务器端的垃圾数据增多,而且由于使用外挂者大多不用在电脑前加以控制,而令玩家长期处于“挂机”状态,服务器需要使用更多资源来处理这些并非由人控制的角色,给服务器带来许多不必要的功耗或负载。
[0004]因此,如何防止这类游戏外挂,成为有待解决的重大问题。

【发明内容】

[0005]本发明主要解决的技术问题是如何防止游戏外挂。
[0006]有鉴于此,本发明实施例提供一种防止游戏外挂的方法及系统,能够有效防止游戏外挂。
[0007]为解决上述技术问题,本发明采用的一个技术方案是:提供一种防止游戏外挂的方法,所述方法包括:为启动的游戏客户端创建对应的标识名和内核对象;根据所述游戏客户端对应的内核对象,统计所述游戏客户端的个数;判断所述游戏客户端的个数是否超出所述游戏允许多开数量;当所述游戏客户端的个数超出所述游戏允许多开数量,给出提示。
[0008]其中,所述方法还包括:确定所述游戏客户端对应的内核对象中有效的内核对象;调用保护函数确保所述有效的内核对象对应的标识名不被修改。
[0009]其中,所述方法还包括:将所述游戏客户端对应的内核对象中无效的内核对象对应的标识名上报服务器;服务器对所述标识名对应的游戏客户端的游戏账号进行处理。
[0010]其中,所述无效的内核对象为超出游戏允许多开数量的游戏客户端对应的内核对象或被修改过的标识名对应的内核对象。
[0011]其中,所述内核对象为event对象、互斥锁或信号量。
[0012]其中,所述内核对象为event对象,所述根据所述客户端对应的内核对象,统计所述游戏客户端的个数:逐一判断每个标识名对应的event对象是否能够打开;每判断到一个能够打开的event对象,则所述游戏客户端的个数增加I。
[0013]为解决上述技术问题,本发明采用的另一个技术方案是:提供一种防止游戏外挂的系统,所述系统包括游戏客户端,所述游戏客户端包括创建模块、统计模块、判断模块以及提示模块,其中:所述创建模块用于在启动游戏客户端时,为所述游戏客户端创建对应标识名和内核对象;所述统计模块用于根据所述游戏客户端对应的内核对象,统计所述游戏客户端的个数;所述判断模块用于判断所述游戏客户端的个数是否超出所述游戏允许多开数量;所述提示模块用于在所述游戏客户端的个数超出所述游戏允许多开数量时,给出提不O
[0014]其中,所述游戏客户端还包括确定模块和控制模块,其中:所述确定模块用于确定所述游戏客户端对应的内核对象中有效的内核对象;所述控制模块用于调用保护函数确保所述有效的内核对象对应的标识名不被修改。
[0015]其中,所述系统还包括服务器,所述服务器包括处理模块,其中:所述控制模块还用于将所述游戏客户端对应的内核对象中无效的内核对象对应的标识名上报给服务器;所述处理模块用于对所述无效的内核对象对应的标识名对应的游戏客户端的游戏账号进行处理。
[0016]其中,所述内核对象为event对象、mutex或信号量。
[0017]本发明的有益效果是:区别于现有技术的情况,本发明通过为每个游戏客户端创建对应的内核对象,根据内核对象统计游戏客户端的个数,从而判断游戏客户端的个数是否超出游戏允许多开数量,在游戏客户端的个数超出游戏允许多开数量时,给出提示。通过这样的方式,能够基于内核对象确定游戏客户端是否超出游戏允许多开数量,从而避免游戏外挂现象。
【附图说明】
[0018]图1是本发明实施例提供的一种防止游戏外挂的方法的流程图;
[0019]图2是本发明实施例提供的一种防止游戏外挂的系统的结构示意。
【具体实施方式】
[0020]请参阅图1,图1是本发明实施例提供的一种防止游戏外挂的方法的流程图,如图所示,本实施例的防止游戏外挂的方法包括:
[0021 ] SlOl:启动的游戏客户端创建对应的标识名和内核对象。
[0022]其中,游戏客户端对应的标识名,可以通过该标识名识别不同的游戏以及同一个游戏的不同客户端。
[0023]本发明实施例中的内核对象可以是event对象、互斥锁mutex或信号量。
[0024]以内核对象为event对象为例,为游戏客户端创建对应的标识名和内核对象可以通过以下形式实现:启动游戏客户端,调用多开初始化函数传入游戏的标识(例如dnf),使用CreateEvent(CreateMutex)函数,为游戏客户端分配标识名比如“dnf I”,并创建“dnf!”名字的event对象,如果标识名“dnfl”存在,则创建标识名” dnf2”并创建对应的event对象,以此类推。
[0025]S102:根据游戏客户端对应的内核对象,统计游戏客户端的个数。
[0026]根据游戏客户端对应的内核对象,统计游戏客户端的个数,具体是指,根据标识号识别同一游戏的多个不同的内核对象,根据内核对象个数统计该同一游戏的游戏客户端个数。其中,一个内核对象对应一个游戏客户端,一个游戏客户端对应一个游戏账号。
[0027]以内核对象为event对象为例,在具体实现时,通过逐一判断每个标识名对应的event对象是否能够打开,每判断到一个能够打开的event对象,则游戏客户端的个数+1。比如可以通过循环尝试打开(OpenEvent) dnf N的event对象,能打开的表示存在,贝Ij游戏客户端计数+1。循环完毕统计游戏客户端计数的个数以作为游戏客户端的个数。
[0028]S103:判断游戏客户端的个数是否超出游戏允许多开数量。
[0029]将游戏客户端的个数与游戏允许多开数量N进行比较,判断游戏客户端的个数是否超出游戏允许多开数量。当游戏客户端的个数超出游戏允许多开数量时,执行S104,否贝1J,执行S105。
[0030]S104:给出提示。
[0031]当游戏客户端的个数超出游戏允许多开数量,提示游戏玩家。其中,在具体提示时,可以弹出玩家登陆的多个游戏客户端账号信息,提示玩家所开游戏客户端个数超出游戏允许多开数量。用户可以根据提示选择继续保留在线的游戏客户端(小于等于多开数量的预定个数账号),用户所选的继续保留在线的游戏客户端对应的内核对象为有效内核对象,超出游戏允许多开数量的游戏客户端对应的内核对象或被修改过的标识名对应的内核对象(超出多开数量的游戏客户端或用户未选择保留的游戏客户端对应的内核对象)为无效的内核对象。系统控制有效内核对象对应的游戏客户端继续正常运行,而将无效的内核对象对应的标识名上报给游戏服务器。
[0032]其中,为了确保有效内核对象对应的游戏客户端能够继续正常运行,也即是游戏允许多开数量范围内的预定多个游戏账号能够继续正常游戏,本发明通过调用保护函数确保有效的内核对象对应的标识名不被修改。举例来说,假设有效的内核对象对应的标识名为dnf I,可以在游戏运行中要调用ZwQueryObject来保证dnf I这个名字不被人修改。
[0033]系统进一步将无效的内核对象对应的标识名上报给服务器,服务器根据上报的标识名,对标识名对应的游戏客户端的游戏账号进行处理,以使得该游戏账号不能正常玩游戏。具体可以是对该游戏账号进行踢人、封号、结束该游戏进程等。
[0034]S105:继续游戏。
[0035]当游戏客户端的个数没有超出游戏允许多开数量时,可以不做提示,继续正常游戏。
[0036]以上方法,启动游戏后,调用多开函数。根据配置的多开数量(N)来比较,并上报给服务器,并且在运行中通过调用多开检测函数来保证多开机制的正常运行。根据上报的信息处理该游戏玩家,踢人、封号、或者结束进程。
[0037]上述本发明实施例的防止游戏外挂的方法,通过为每个游戏客户端创建对应的内核对象,根据内核对象统计游戏客户端的个数,从而判断游戏客户端的个数是否超出游戏允许多开数量,在游戏客户端的个数超出游戏允许多开数量时,给出提示。通过这样的方式,能够基于内核对象确定游戏客户端是否超出游戏允许多开数量,从而让游戏以运营商运行的多开数量来正常的玩游戏,避免游戏外挂现象。让游戏运营公司有良好的收入,从而保证游戏的存活。
[0038]请参阅图2,图2是本发明实施例提供的一种防止游戏外挂的系统的结构示意图,如图所示,本实施例的系统包括游戏客户端100,游戏客户端100包括创建模块11、统计模块
12、判断模块13以及提示模块14,其中:
[0039]创建模块11用于在启动游戏客户端时,为游戏客户端创建对应标识名和内核对象。
[0040]其中,游戏客户端对应的标识名,可以通过该标识名识别不同的游戏以及同一个游戏的不同客户端。
[0041 ]本发明实施例中的内核对象可以是event对象、互斥锁mutex或信号量。
[0042]以内核对象为event对象为例,创建模块11为游戏客户端创建对应的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1