CN101557400B - 网络游戏反外挂的实现方法 - Google Patents

网络游戏反外挂的实现方法 Download PDF

Info

Publication number
CN101557400B
CN101557400B CN2009101117990A CN200910111799A CN101557400B CN 101557400 B CN101557400 B CN 101557400B CN 2009101117990 A CN2009101117990 A CN 2009101117990A CN 200910111799 A CN200910111799 A CN 200910111799A CN 101557400 B CN101557400 B CN 101557400B
Authority
CN
China
Prior art keywords
challenge
client
server end
script
result
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009101117990A
Other languages
English (en)
Other versions
CN101557400A (zh
Inventor
蔡伟
陈秋树
徐军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XIAMEN G-BITS NETWORK TECHNOLOGY CO LTD
Original Assignee
XIAMEN G-BITS NETWORK TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by XIAMEN G-BITS NETWORK TECHNOLOGY CO LTD filed Critical XIAMEN G-BITS NETWORK TECHNOLOGY CO LTD
Priority to CN2009101117990A priority Critical patent/CN101557400B/zh
Publication of CN101557400A publication Critical patent/CN101557400A/zh
Application granted granted Critical
Publication of CN101557400B publication Critical patent/CN101557400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络游戏反外挂的实现方法,包括下述步骤:1)服务器端随机发送挑战信息到客户端,等待客户端应答;2)客户端在收到挑战信息后,在虚拟机中运行服务器端发送来的挑战信息脚本代码,并将结果发送给服务器端;3)服务器端接收到客户端返回的挑战应答后,和服务器端的预期结果进行比较,若结果符合预期,则认为该游戏客户端是合法、可被信任的;否则,认为该游戏客户端是非法、不被信任的。通过该方法可以有效、可靠的打击现有或潜在外挂,以维持正常用户及游戏公司的利益。

Description

网络游戏反外挂的实现方法
技术领域
本发明涉及一种网络游戏的技术领域,尤指一种网络游戏反外挂的实现方法。
背景技术
网络游戏的构造,总体可分为服务器端、客户端两部分(如图1所示)。客户端是在用户本地运行的客户程序,服务器端是运行在远程的服务程序,两者通过网络相互通讯,如图2所示。
在现实中的大部分网络游戏一般都会遇到外挂的困扰。从服务器端负载能力方面考虑,外挂占用大量的服务器端负载资源;从正常用户体验方面考虑,由于服务器端负载资源被外挂大量占用,正常用户的体验严重收到影响;从游戏公司考虑,外挂有时会严重影响游戏的声誉及收益。
所谓外挂(“hack tools”,或称“cheating program”)就是指某些人利用自己掌握的计算机技术针对一个或多个网络游戏,通过改变网络游戏软件的部分程序,制作而成的作弊程序。
用户利用这种作弊程序可以轻易得到其他正常用户无法得到、或必须通过长期运行程序才能得到的游戏效果。
外挂的表现有很多种,有加速器、封包等,其最显著的特征就是为使用外挂的游戏者带来不同于正常用户的游戏效果,它能使使用外挂者比正常用户奔跑快、攻击威力加大、获得更多的游戏道具等。
外挂主要是通过破解游戏客户端代码和破解游戏客户端、服务器端之间的通讯机制,来伪造报文,实现其目的。
因此打击外挂,日益被各网络游戏开发公司所重视。
发明内容
本发明所要解决的技术问题在于提供一种网络游戏反外挂的实现方法,其可以有效、可靠的打击现有或潜在外挂,以维持正常用户及游戏公司的利益。
为解决上述技术问题,本发明的技术解决方案是:
一种网络游戏反外挂的实现方法,包括下述步骤:
1)服务器端随机发送挑战信息到客户端,等待客户端应答;
2)客户端在收到挑战信息后,在虚拟机中运行服务器端发送来的挑战信息脚本代码,并将结果发送给服务器端;
3)服务器端接收到客户端返回的挑战应答后,和服务器端的预期结果进行比较,若结果符合预期,则认为该游戏客户端是合法、可被信任的;否则,认为该游戏客户端是非法、不被信任的。
该方法还引入挑战超时机制,即服务器端在发送挑战信息之后同时启动挑战超时定时器,当客户端应答超时,则认为客户端挑战失败一次,发送新的挑战信息给客户端,再次启动挑战超时定时器,依次循环;当挑战超时定时器判断挑战失败次数超过设定警戒值时,则认为该游戏客户端是非法、不被信任的;挑战失败包括超时未收到答复和答复错误两种。
所述的挑战信息包括服务器端随机加密生成的挑战问题和获取挑战问题答案的计算方法。
所述的虚拟机为一脚本解释器,它可以对脚本进行解释、运行等操作。
方法还包括步骤4),即当挑战超时定时器判断挑战失败次数超过设定警戒值,启动ECHO检查机制,同时启动ECHO超时定时器;启动ECHO机制之后,服务器端组织ECHO报文并发送给客户端,当客户端应答超时,则强制客户端下线;而当客户端及时应答成功,根据数据库设定配置进行对应的处理。
采用上述方案后,由于本发明将在服务器端不定期地触发验证功能,通过指定的消息向游戏客户端发送脚本数据;由游戏客户端调用虚拟机进行相关计算、处理。服务器端可以灵活无规律地选择挑战问题和计算挑战问题答案的方法,挑战问题信息和计算挑战问题答案的方法完全独立于客户端,有效的杜绝了绝大部分外挂在客户端破解的可能性。可以达到以下的效果:
1、服务器端可以简单的利用服务器端充沛的代码资源进行挑战问题的挑选;且服务器端代码资源在不断的更新,因此保证了可以挑战资源的不断增长。
2、服务器可以灵活地配置使用计算挑战问题答案的方法,这种灵活的计算方式,便于调整反外挂的策略。
3、客户端相关处理运行在虚拟机中的机制,也提高了外挂破解的难度,提高了外挂的技术门槛,同时也提高了外挂的开销。
4、很好的保证了用户的正常游戏体验。
5、外挂被有效杜绝,维护其他用户的利益及游戏的公平性,同时可维护游戏公司的利益。
6、所付出的代价较低,不会对游戏的正常运行造成不良影响(游戏客户端表现卡、游戏客户端崩溃或游戏客户端内存泄露)。
附图说明
图1是当前网络游戏的框架拓扑示意图;
图2是网络游戏服务器端和客户端相互通讯的示意图;
图3是本发明挑战模块初始化流程示意图;
图4是本发明挑战模块执行流程示意图;
图5是本发明整体流程概要示意图。
具体实施方式
本发明所揭示的是一种网络游戏反外挂的实现方法,如图3至图5所示。
本发明将网络游戏系统分为游戏服务器和游戏客户端部分,且客户端和服务器端可以通过远程调用实现数据的通讯(配合图2所示)。当客户端连接到服务器端时,服务器端会每隔一定的时间就发送一次挑战信息到客户端,以验证客户端的有效性,客户端接收到挑战信息后会应答该挑战给服务器端,服务器端会将应答结果与服务器端的预期结果相比较,若结果符合预期,则认为该客户端是合法的、或可被信任的,若连续一定的次数没有收到客户端的挑战应答或没有得到正确的应答,则认为该客户端非法,相应的做一些非法客户端的处理,例如强制将该客户端与服务器端断开连接。
在运行这一过程前,要先进行挑战模块初始化:即服务器端读取计算挑战答案的脚本文件,加密生成计算挑战答案的脚本,发送给客户端;客户端检验合法性,在虚拟机中解密执行。如图3所示。
初始化后,即可执行这一过程。上述过程,主要有以下部分组成:
1.挑战信息的组织
组织挑战报文,随机加密生成挑战问题和要求计算答题脚本。
服务器端在组织挑战信息时,服务器端会随机产生一段脚本代码SCRIPT_A,该脚本只是一些完整的函数体,并将该部分代码加密。
同时服务器端会组织另外的一段脚本代码SCRIPT_B,该部分代码主要实现传入参数调用SCRIPT_A中的函数,以及将信息发送给服务器端的代码。
2.挑战信息的发送
发送信息前,服务器本身会运行一次SCRIPT_A,并将计算结果做记录,以被核查客户端返回的答案。
将脚本代码SCRIPT_A和SCRIPT_B做加密后发送给客户端,并将该脚本在服务器端做记录。
发送后启动挑战超时机制。
3.挑战信息的应答
客户端收到挑战信息后会在虚拟机中运行服务器端发送来的脚本代码,并将结果发送给服务器端。
具体的执行方法是:客户端在收到服务器发送过来的数据包后,按照约定的格式从缓冲区中获取数据,并将之组织成客户端可以接受的数据结构。然后在一个专门负责处理反外挂的类中解析服务器发送过来的数据:先把脚本数据从数据结构中抽取出来,然后进行一系列判断,如果不符合约定格式,则不再继续后续处理;如果符合约定格式则调用虚拟机执行该脚本数据,然后根据该结果进行相关处理。虚拟机是脚本解释器,用以对脚本进行解释、运行等操作。
4.挑战结果的验证
服务器端接收到客户端发送来的挑战应答后,停止挑战超时机制。
先判断挑战题目和挑战题目运行的结果是否正确,若正确则准备下一次挑战,若接收到的挑战题目或挑战题目运行的结果不正确,则累计挑战失败的次数,并再次尝试挑战客户端。
5.挑战超时机制
为了防止客户端不应答来规避挑战,服务器端在发送挑战信息后同时启动挑战超时定时器,即一定的时间间隔后检查一下是否收到了客户端的应答。当客户端应答超时,则认为客户端挑战失败一次,发送新的挑战信息给客户端,再次启动挑战超时定时器,依次循环。
6.启动ECHO机制
当挑战超时定时器判断挑战失败次数超过设定警戒值,则启动ECHO检查机制,同时启动ECHO超时定时器。挑战失败包括超时未收到答复和答复错误两种。
启动ECHO机制之后,服务器端组织ECHO报文并发送给客户端。当客户端应答超时,则认为客户端为非法、不被信任的,主动断开与该游戏客户端的连接,即强制客户端下线;而当客户端及时应答成功,根据数据库设定配置进行对应的处理。处理分类有:惩罚、踢人、断开连接、记录等等。
上述挑战机制负责的是判断客户端是否合法。ECHO机制处理的是非法客户端的惩罚,即验证客户端的情况,若没有收到验证客户端的应答信息,则直接和客户端断开连接;若收到了应答信息,则根据客户端返回的验证信息,做相应的处理。

Claims (1)

1.一种网络游戏反外挂的实现方法,其特征在于包括以下步骤:
步骤1、服务器端组织挑战信息,随机加密生成挑战问题和要求计算答题脚本;
在组织挑战信息时,服务器端会随机产生一段脚本代码SCRIPT_A,该脚本只是一些完整的函数体,并将该部分代码加密,同时服务器端会组织另外的一段脚本代码SCRIPT_B,该部分代码主要实现传入参数调用SCRIPT_A中的函数,以及将信息发送给服务器端的代码;
步骤2、发送信息前,服务器本身会运行一次SCRIPT_A,并将计算结果做记录,以便核查客户端返回的答案;将脚本代码SCRIPT_A和SCRIPT_B做加密后发送给客户端,并将该脚本在服务器端做记录,发送后启动挑战超时定时器;
步骤3、客户端收到挑战信息后会在虚拟机中运行服务器端发送来的脚本代码,并将结果发送给服务器端;
具体的执行方法是:客户端在收到服务器发送过来的数据包后,按照约定的格式从缓冲区中获取数据,并将之组织成客户端可以接受的数据结构,然后把脚本数据从数据结构中抽取出来进行判断,如果不符合约定格式,则不再继续后续处理;如果符合约定格式,则调用虚拟机执行该脚本数据,然后将结果作为挑战应答回复给服务器端;
步骤4、服务器端接收到客户端发送来的挑战应答后,停止挑战超时机制,先判断挑战问题和挑战问题运行的结果是否正确,若正确则准备下一次挑战,若接收到的挑战问题或挑战问题运行的结果不正确,则累计挑战失败的次数,并再次尝试挑战客户端;
当客户端应答超时,则认为客户端挑战失败一次,发送新的挑战信息给客户端,再次启动挑战超时定时器,依次循环;
当挑战超时定时器判断挑战失败次数超过设定警戒值,则启动ECHO检查机制,所述的挑战失败包括超时未收到答复和答复错误两种。
CN2009101117990A 2009-05-13 2009-05-13 网络游戏反外挂的实现方法 Active CN101557400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101117990A CN101557400B (zh) 2009-05-13 2009-05-13 网络游戏反外挂的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101117990A CN101557400B (zh) 2009-05-13 2009-05-13 网络游戏反外挂的实现方法

Publications (2)

Publication Number Publication Date
CN101557400A CN101557400A (zh) 2009-10-14
CN101557400B true CN101557400B (zh) 2012-02-22

Family

ID=41175345

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101117990A Active CN101557400B (zh) 2009-05-13 2009-05-13 网络游戏反外挂的实现方法

Country Status (1)

Country Link
CN (1) CN101557400B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103051639A (zh) * 2013-01-09 2013-04-17 福建天晴数码有限公司 一种可反脱机外挂的网络游戏反外挂系统及其方法
CN103902886A (zh) * 2014-03-04 2014-07-02 珠海市君天电子科技有限公司 一种检测第三方应用的方法及装置
CN104958903A (zh) * 2015-06-25 2015-10-07 四川天上友嘉网络科技有限公司 游戏外挂的防护方法
CN105245514B (zh) * 2015-09-28 2019-05-07 珠海多玩信息技术有限公司 外挂识别方法、装置及系统
CN106345119A (zh) * 2016-08-30 2017-01-25 江苏名通信息科技有限公司 一种网络游戏外挂处理方法
CN107154930B (zh) * 2017-03-31 2020-10-16 武汉斗鱼网络科技有限公司 一种测试漏洞的方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599314A (zh) * 2004-08-25 2005-03-23 湖南大学 一种基于s/key系统双向认证的一次性口令验证方法
CN101106456A (zh) * 2006-07-11 2008-01-16 深圳市江波龙电子有限公司 在线身份的双因子认证方法和系统
CN101350719A (zh) * 2007-07-18 2009-01-21 康佳集团股份有限公司 新型的身份认证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1599314A (zh) * 2004-08-25 2005-03-23 湖南大学 一种基于s/key系统双向认证的一次性口令验证方法
CN101106456A (zh) * 2006-07-11 2008-01-16 深圳市江波龙电子有限公司 在线身份的双因子认证方法和系统
CN101350719A (zh) * 2007-07-18 2009-01-21 康佳集团股份有限公司 新型的身份认证方法

Also Published As

Publication number Publication date
CN101557400A (zh) 2009-10-14

Similar Documents

Publication Publication Date Title
CN101557400B (zh) 网络游戏反外挂的实现方法
US8984292B2 (en) Keyed human interactive proof players
US8296568B2 (en) Systems and methods for authenticating an electronic transaction
CN104283885B (zh) 一种基于智能终端本地认证的多sp安全绑定的实现方法
CN106452721A (zh) 一种基于标识公钥的智能设备指令鉴别方法及系统
CN103916244A (zh) 验证方法及装置
CN103530490A (zh) 一种模拟器类联网游戏的外挂识别方法和系统
CN102281138B (zh) 一种提高验证码安全性的方法和系统
CN103037366B (zh) 基于非对称密码技术的移动终端用户认证方法及移动终端
CN105357008B (zh) 身份验证方法及装置
CN103346887A (zh) 一种基于智能卡多服务器环境下的低复杂度身份认证方法
CN109589607A (zh) 一种基于区块链的游戏防作弊方法及游戏防作弊系统
CN109088865A (zh) 用户身份认证方法、装置、可读存储介质和计算机设备
CN105024967A (zh) 一种利用验证图片识别游戏外挂的方法
Baca et al. Prioritizing countermeasures through the countermeasure method for software security (CM-Sec)
CN110381055A (zh) 医疗供应链中的rfid系统隐私保护认证协议方法
CN102833247A (zh) 一种用户登陆系统中的反扫号方法及其装置
CN107147498A (zh) 一种基于Hash函数和动态共享密钥的强匿名RFID认证协议
Datta et al. Abstraction and refinement in protocol derivation
CN103731340A (zh) 一种网络游戏系统的通信方法
CN106027237B (zh) 一种rfid系统中基于组的密钥矩阵安全认证方法
KR20090003134A (ko) Pc 인증 기반의 불법 접속 방지 시스템과 그 방법
CN107480564A (zh) 一种改进的rfid群组认证方法
CN103209161B (zh) 一种访问请求处理方法及装置
CN101854357A (zh) 网络认证监控方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20091014

Assignee: Xiamen Leiting Interaction Network Co., Ltd.

Assignor: Xiamen G-Bits Network Technology Co.,Ltd.

Contract record no.: 2015350000068

Denomination of invention: Method for realizing anti-external hanging of online game

Granted publication date: 20120222

License type: Exclusive License

Record date: 20150814

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model