如何发现游戏软件中的漏洞并制作补丁

2016-05-30 06:20田韬伟
科技创新导报 2016年18期
关键词:补丁游戏

田韬伟

DOI:10.16660/j.cnki.1674-098X.2016.18.086

摘 要:靠程序员编写而成的游戏软件,被玩家发现存在漏洞已经屡见不鲜,游戏漏洞有硬件漏洞和软件漏洞之分,也有良性漏洞和恶性漏洞之分。因此,该文对游戏软件漏洞的概念进行简单概述,举以多种实例对游戏软件漏洞予以说明,较为详细地分析了寻找游戏软件漏洞的方法及其实行过程,分别阐述了游戏补丁的作用和游戏补丁的制作过程。

关键词:游戏 软件漏洞 补丁

中图分类号:TP39 文献标识码:A 文章编号:1674-098X(2016)06(c)-0086-02

游戏软件都是依靠程序员来进行编写的,存在漏洞在所难免,但及时发现游戏漏洞并制作相应的补丁对游戏形象维护很重要。像《英雄联盟》S4总决赛上,就出现了酒桶不能发出Q技能的尴尬漏洞,使比赛暂停了两个多小时,整届比赛不能使用酒桶,大大有损该游戏的形象。该文就笔者的实践工作经验来谈一谈如何发现游戏软件中的漏洞并制作补丁,希望对广大游戏工作者能有所帮助。

1 游戏软件漏洞概述

通常意义上的游戏漏洞,包括游戏的硬件漏洞和软件漏洞。游戏的硬件漏洞是由于游戏硬件的设计错误或者是硬件部件的失效老化而造成的。而游戏的软件漏洞,则是指游戏的软件程序编写存在缺陷,广义上也包括用户在游戏体验过程中发现并提出的游戏软件需要进行改进的细节。

就狭义的游戏软件漏洞,即游戏软件编写上的缺陷而言,造成的原因主要有三个:一是游戏软件工程师对游戏过程中的各种流程分支没有进行足够全面的考虑,二是游戏软件工程师对游戏中可能出现的各种边界情况没有进行精确到位的处理,三是游戏软件编程人员在对游戏软件进行编码的时候出现了失误。

一款游戏存在软件漏洞是不可避免的事情,所以游戏从推出到正式投入运行通常都要经过封测、内测和公测三个阶段,在这些阶段中对游戏的软件漏洞进行不断修复。即使如此,一些网络游戏在进行数据版本更新之后,仍难免存在一定的软件漏洞。但游戏的软件漏洞也有恶性漏洞和良性漏洞之分,恶性漏洞的存在往往很是影响游戏玩家的体验,比如腾讯代理的游戏《FIFA Online3》,在游戏过程中环境网络正常的情况下玩家会经常出现突然断开服务器的情况,就属于恶性漏洞。而良性漏洞则往往不会带来非常严重的后果,而且有些玩家还能从良性漏洞中获得利益,最为典型的良性漏洞就是《穿越火线》中的卡箱子,一些玩家能卡进箱子里面进行躲藏而赢得游戏,但其他玩家也可以踢出这些玩家,增加了游戏体验的乐趣。

另外在国产游戏《1937特种兵》中也存在至少2个以上良性漏洞,在这款游戏中,只要所有人物使用步枪就可以(强子就行)在与日本兵之间没有障碍物的情况下,按“Ctrl”键并点击日本兵就可以直接杀死敌人,可以说是“神射”。因为它没有距离限制,多远都可以射死。在游戏第5关火烧粮仓中,来到鬼脚七所在的地方,右边停放着两辆汽车,让大牛站在黑色的汽车后面,用鼠标点击汽车右边的墙外,这时大牛就会穿墙跑出去,而且日本士兵也会在这里穿墙。虽然这样的漏洞并不影响玩家按照设定的情节继续体验,但依然不应该出现。

2 发现游戏软件漏洞的方法

2.1 游戏软件程序编写完成之后进行静态检测

软件静态检测的对象主要是程序编写过程中程序员的简单逻辑错误和手误,其过程是应用专业的程序代码静态检测软件对游戏软件程序中所有的代码进行扫描,并对这些代码中的关键句使用静态分析法进行分析。即对程序语句的语法是否正确进行判断,将程序中的语句与数据库的语句进行对比,找出其中可能存在逻辑错误的句子。

2.2 游戏封测让游戏测试工程师寻找游戏软件漏洞

一款游戏在面试之前都要经过较长时间的封测,会有专业的游戏测试工程师对游戏进行测试,这些游戏测试工程师通常都是各种玩游戏的高手,能够对游戏的可玩性、平衡性作出较为专业的评价,软件漏洞通常更是逃不过这些职业游戏测试者的法眼。他们一旦发现了游戏的漏洞就会跟软件工程师商量,找到管理与该漏洞有关的程序代码句子进行修改并再测试,直到漏洞消除为止。

2.3 游戏内测让少量游戏玩家寻找游戏软件漏洞

封测之后,游戏一般需要开放少量的账号对游戏进行内测,简单来说就是让一些对游戏较为感兴趣的玩家进行试玩。在内测过程中,游戏运营商会以问卷等方式从内测玩家取得对游戏的信息反馈,包括对游戏的体验评价以及是否在游戏过程中发现游戏存在漏洞等。在选择内测玩家时游戏开发商会选择那些较为忠实的玩家,这些玩家往往能将自己的大部分时间都投入到游戏当中。一定数量的内测玩家对游戏体验一段时间后,游戏测试工程师没有及时发现的游戏软件漏洞基本都能够被内测玩家所发现并反馈到游戏公司。游戏公司的软件工程师会对漏洞所在处的程序语句进行调整并将改写之后的游戏软件再次投入内测,直到内测玩家认为游戏无明显漏洞为止。

2.4 游戏公测让所有游戏玩家一起寻找游戏软件漏洞

游戏经过内测之后已经基本可以上线了,但是大型的网游还要经过一段时间的删档公测,即将游戏向所有玩家开放,大家一起来找寻游戏中的漏洞和不合理的地方。通过客服和运营商推送的问卷,让玩家将游戏中可能存在的漏洞反馈给运营商,运营商让游戏开发的软件工程师修改相关部分的代码,使游戏版本更新,让所有玩家再体验,直到游戏基本没有漏洞之后,游戏就可以进入不删档公测阶段了,到此游戏就算进入了正式运营。

3 针对游戏漏洞的补丁制作

3.1 游戏补丁的作用

在游戏开发商通过各种途径找到了游戏中存在的软件漏洞以后,就要开始针对已发现的漏洞制作补丁。补丁可以一款游戏解决以下诸多问题。

(1)游戏软件源代码存在的缺陷。即确认漏洞是由于游戏软件源代码编写错误而造成的,就要用相应的软件修改源代码修复游戏软件的漏洞。

(2)游戏软件系统的自主质量改进。即游戏开发商可以用补丁对游戏画面进行改良,对游戏的平衡性进行调整等。

(3)随着玩家游戏硬件的改变而对游戏软件进行调整。现在社会上的电子硬件设备层出不穷,一款老游戏难免有与市场上的硬件设备不兼容的情况,这时游戏开发商想要留住这批使用新设备的玩家就必须开发新的软件版本,修改程序局部源代码使之能适应硬件的变化。

3.2 游戏补丁的制作

在游戏漏洞被发现并确认以后,如果漏洞简单易处理,就只需对漏洞对应软件的配置文件进行修改,或者直接制作一个附加软件对玩家的游戏安装环境进行限制即可。复杂一些的漏洞,就需要找对漏洞所对应的游戏程序源代码进行仔细分析,对源代码的缺陷进行正确的修改,测试无误以后制作成游戏软件补丁包推送给玩家。

4 结语

游戏漏洞的存在不可避免,但只要游戏制作方有较为完善的游戏漏洞查找流程,能及时发现游戏中的漏洞并制作好补丁,就不会对玩家造成太大的困扰,漏洞对游戏的长期运行的影响也可以降到最低。该文关于游戏软件漏洞的介绍、发现游戏软件漏洞的方法以及关于制作游戏补丁的论述都甚为粗浅,但希望能抛砖引玉,吸引更多游戏软件相关工作者建立更为完善的理论。

参考文献

[1] 文伟平,张普含,徐有福.参考安全补丁比对的软件安全漏洞挖掘方法[J].清华大学学报:自然科学版,2011(10):1264-1268.

[2] 姜文,刘立康.应用软件维护中的补丁开发与管理[J].计算机技术与发展,2015(11):11-16.

[3] 文伟平,吴兴丽,蒋建春.软件安全漏洞挖掘的研究思路及发展趋势[J].信息网络安全,2009(10):78-80.

猜你喜欢
补丁游戏
补丁
健胃补丁
补丁奶奶
爆笑游戏
关于补丁
大病医保期待政策“补丁”