随着游戏在外网运营时间的增长,游戏自身的漏洞会逐渐爆发,演变成各种各样的外挂,传播在作弊玩家中。游戏自身漏洞被发现和利用是外挂出现的根本原因。不同游戏的类型不同,其外挂功能也不同。为了方便本篇的描述,笔者简单的将游戏分为竞技类游戏和休闲类游戏:
之所以将众多游戏种类划分为这两类,是因为这类游戏产生的外挂种类往往有较大的区别。强竞技类游戏的外挂,主要目的是为了使玩家在竞技过程中获得增益,如FPS类游戏的透视自瞄,动作类游戏的远程攻击,自身无敌,全屏秒杀等,这些外挂往往具有变态类功能,破坏了竞技的公平性,而休闲类游戏的外挂,主要是为了增加趣味性、恶意干扰等功能,如任意捏脸,限定表情,变色文本,,比如以敲诈勒索类为主的恶意干扰,以刷屏霸屏为主的广告推销等等……
强竞技类游戏
强竞技类游戏出现的外挂数量庞大,种类最多,其外挂的恶劣程度也远超过其他类型的游戏。本章主要针对强竞技类游戏,并围绕着其中的2个关键的系统——攻击和移动,进行漏洞挖掘方法的介绍,希望能够起到抛砖引玉的作用。
攻击系统
攻击系统属于战斗系统中最为复杂也最为关键的系统,它参与到玩家攻击前后的血量,状态,伤害,评分等各个计算,任何一个环节出现错误,都会导致最终的结果出现偏差,直接影响到最终的竞技结果。攻击系统也正是因为自身逻辑的复杂,导致潜在的风险很多,往往成为外挂作者最为关心的地方
下面以某款RPG类游戏举例,详细的介绍下攻击系统流程(不保证其他游戏攻击流程与下图完全一致):
图片中介绍了该游戏完整的攻击链,其中黑色方框处,便是可能出现的风险点。下面进一步详细解释各个环节:
1. 召唤:不少战斗系统中涉及到技能可以召唤出己方宠物等,辅助自己战斗。不少外挂,可利用伪造上行协议,或者直接call游戏内函数,召唤出本不属于自身的宠物,来辅助自己战斗。
2. 秒杀:在战斗系统开始前,游戏自身会初始化当前战斗系统中的怪物个数或是怪物血量,较多外挂通过分析客户端逻辑或协议,修改客户端自身代码或者伪造协议,使直接初始化怪物个数为0,或者初始化怪物HP为0,导致无需进行战斗,则