阻击外挂——《龙之谷手游》安全测试的那点事

作者:sheldon,腾讯游戏漏洞测试高级工程师
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。 


一、项目背景

外挂的危害

随着智能手机的全面普及和市场泛娱乐化,移动游戏行业发展迅猛,无论是市场收入还是用户规模,手游在游戏市场上已经占据了半壁江山。如此火热的市场吸引了大量外挂、辅助工作室等非法盈利团队,严重影响了游戏的收益、平衡,缩短游戏的生命周期,外挂对手游形成了这些危害:


手游外挂的八大危害

 

为了避免这些损害,腾讯游戏内部的测试流程已经将“手游安全测试”设立为必经环节,腾讯大部分手游上线前都会进行手游安全测试,《王者荣耀》、《穿越火线:枪战王者》,《梦幻诛仙》等六星级游戏更是每一个版本都主动寻求手游漏洞扫描。《龙之谷手游》同样也是如此。

 

《龙之谷手游》的加入

《龙之谷》在端游时代遭受过游戏外挂“洗礼”,从简单的游戏内存修改、变速齿轮到后面越演越烈N倍攻击挂、无敌挂、穿墙挂,曾经一度被玩家称作“外挂谷”。《龙之谷手游》依然延续端游ACT类的玩法与类型,原汁原味还原端游经典,在手游版本发布前,游戏测试和运营团队将游戏安全性作为一个重要专项来持续开展。

为了吸取端游的历史教训,避免手游上线后再次出现游戏外挂,《龙之谷手游》测试团队选择与腾讯WeTest合作,使用手游安全测试专家模式,对游戏的客户端、服务器、以及通信协议方面的安全质量进行全面检测和把控。在顺利上线后,腾讯WeTest团队整理了《龙之谷手游》安全测试过程中的一些思路和实践内容,对外分享。

 

二、技术难点

手游的使用场景与传统APP有着巨大的差异,不同的游戏玩法, 技术实现都不一样,因此手游安全测试团队需要对每一个游戏,都从零开始研究游戏内部实现架构。

经过分析,《龙之谷手游》使用Google protobuf组件来实现协议数据通信,而腾讯WeTest手游安全测试团队具备protobuf等主流协议结构的自动接入和解析技术,无需利用proto文件自动提取游戏协议结构代码,自动分析游戏通信协议明文点,完成通信协议工具接入。《龙之谷手游》属于重度RPG类型,带有实时PVP玩法,包含多种类型副本、小游戏玩法、公会、家园、天梯赛、英雄战场、世界boss等50多个功能系统,如何在短时间内完成全量内容的漏洞检测是当时面临的最大挑战。手游安全测试团队一方面使用函数风险智能分析系统、盗刷漏洞扫描和拒绝服务攻击扫描对游戏进行一轮漏洞自动化检测,另一方面根据各功能风险性和优先级对游戏的战斗系统、交易所和战力成长系统进行深度分析和漏洞挖掘。


 

函数风险智能分析流程

 

三、实现方案

测试目标

根据手游安全测试团队对腾讯游戏多年的测试经验,手游安全漏洞主要会出现在客户端、游戏逻辑和服务器三个层面,为了整体全面的发现手游外挂情况,测试团队将手游外挂的风险项细化情况如下:

 

测试前的分析

前文提到不同手游玩法都会使用不同的技术实现,因此在《龙之谷手游》安全测试之初,团队对游戏进行了一个详细的分析与拆解。

游戏实现——拆分游戏玩法中风险节点

分析过程中,测试团队发现《龙之谷手游》的 “战斗系统”和“交易系统”是手游漏洞产生的高危模块,下文也将从这两块出发,拆分其中的风险节点。

 

战斗系统——单机模式与多人联机模式结合

√ 《龙之谷手游》核心玩法包括PVP和PVE战斗系统以及各种模式的副本单机模式:主线副本属于单机模式,战斗过程完全在客户端侧实现,测试中可重点通过内存修改和函数修改来挖掘漏洞;

√ 多人联机模式:巢穴副本、1V1天梯赛、保卫队长等属于多人联机模式,战斗过程的实现由客户端和服务器相互配合来完成。根据实现,优先采用协议测试工具进行漏洞挖掘,在验证部分风险项时仍然要使用客户端的内存、函数、变速测试工具。

 

交易系统——游戏道具流通的核心枢纽

游戏允许玩家通过交易所进行物品交易流通,安全漏洞的影响面将会被交易系统进一步放大,也是需要优先进行外挂检测和漏洞挖掘的内容。

对于手游玩法的具体拆分,可见下图的安全风险分析示例(部分):


《龙之谷手游》风险分析片段

 

安全风险项下钻分析示例(部分):

《龙之谷手游》安全风险项下钻分析

 

 

除上述外挂风险以外,服务器端程序的健壮性也需要通过拒绝服务攻击扫描进行宕机风险的检测。

根据对于《龙之谷手游》的拆分,测试团队基本确认游戏核心玩法在于多人联机的PVP或PVE模式以及其丰富的交易系统,因此团队也将测试的策略调整为“协议测试为主,函数及内存修改测试为辅“。

 

游戏引擎——针对引擎与实现寻找突破口

游戏使用Unity3D引擎开发,该类型游戏游戏源代码一般会使用C#、Lua、C++中的一种或多种。经过分析《龙之谷》客户端部分代码逻辑是使用C#脚本语言,不过出于安全性考虑,研发团队已经将游戏安装包中客户端逻辑代码文件XxxxxClient.dll进行了加密,所以在逆向分析前要进行该文件的解密操作获取明文。获取明文源码的办法比较多:

1、逆向解密函数,利用游戏解密函数解密;

2、在游戏运行过程中将XxxxxClient.dll从内存中Dump出来;

3、Hook Mono函数mono_image_open_from_data_with_name()和mono_class_from_name ()也可以获取明文源码。


 

游戏某版本测试后发现安全问题

游戏风险分析完成后,漏洞挖掘的工作其实就完成了一大半,之后利用安全测试工具对风险进行逐一验证即可。在游戏中发现以下几种类型的漏洞,均属于致命级漏洞:

类型一:外挂类漏洞

(1) PVP模式加速移动

(2) PVE主线副本存在无敌秒杀、全屏攻击等大量安全漏洞

“PVP天梯加速”漏洞视频:https://v.qq.com/x/page/h0390e2ias6.html

无敌全屏秒杀”漏洞视频:https://v.qq.com/x/page/v0390tzwloc.html

 

类型二:盗刷类漏洞

(1) 拍卖可任意复制物品,无限盗刷龙币

(2) 驱逐家园中的妖精可无限盗刷奖励

“拍卖所复制物品”漏洞视频:https://v.qq.com/x/page/o0390uhyk8l.html

 

类型三:宕机类漏洞

(1) 图鉴分解请求中,构造异常图鉴ID引发服务器宕机

(2) 图鉴分解请求中,构造异常图鉴数量引发服务器宕机

(3) 公会、竞技场、图鉴商店的购买请求中,构造异常的物品数量引发服务器宕机

(4) 纹章洗练请求中,构造异常的洗练次数引发服务器宕机

 

解决方法

外挂类漏洞

  • 变速漏洞实现方式有多种,相应也有多种修复方案。可监控系统时间相关函数是否被篡改来检测通用变速器类的修改器;针对修改游戏内部保存角色移动速度变量的内存,也可以通过内存加密、设置影子变量和服务器坐标校验等方式来解决。
  • 对PVE单机副本外挂类漏洞的处理,可从副本结算请求的内容上做文章。如加入副本挑战序列号来防止结算重发;加入CRC、md5或一些冗余信息来防止结算请求被篡改;加入战斗过程数据采样甚至隐形NPC通过服务器安全策略校验,来防止无敌秒杀全屏攻击等类型外挂。

盗刷类漏洞

  • 服务器处理购买、结算等物品发放请求时,需要加强对请求中各项信息合法性校验,另外运营侧可以接入运营经分系统,对各种道具和金钱的产出进行实时监控与告警。

宕机类漏洞

  • 因程序健壮性导致的服务器宕机漏洞被检测出之后,修复起来比较简单,针对性做好异常值处理就能够修复。

 

四、最终效果

在项目测试阶段,手游安全测试团队累积为《龙之谷手游》挖掘出了7个致命级漏洞,8个高危级漏洞,5个中危级漏洞,将潜伏在游戏中的龙币盗刷、PVP/PVE外挂、服务器宕机等各类致命级、高危级漏洞提前揭露出来,提前制定修复方案进行修复,并评估和验收结果与风险。手游安全漏洞的测试为《龙之谷手游》项目组避免了经济损失,为游戏正式开启不删档,为用户提供安全、公平、健康的游戏环境提供了坚实支撑和保障。


关于腾讯WeTest手游安全测试团队

腾讯WeTest手游安全测试团队从2011年初开始对手游安全领域进行探索和技术积累,旨在通过提前发现游戏版本的安全漏洞,预警风险,打造出业界领先的手游安全测试技术方案,在工具上已经支持所有腾讯在研和运营的手游项目。团队通过使用与正式服同样的游戏客户端和服务器,模拟外挂工作室制作外挂的过程,依靠自身的技术积累来提高专业程度,持续保持漏洞的发现率。

目前提供了专家测试服务,希望通过提前发现游戏版本的安全漏洞,预警风险,帮助提高腾讯游戏的品牌和口碑。

服务目前已经登陆腾讯云,欢迎前来使用https://www.qcloud.com/product/sr

手游安全测试接入流程:https://www.qcloud.com/document/product/574/8807

常见问题:https://www.qcloud.com/document/product/574/8813

时间: 2025-01-20 18:46:01

阻击外挂——《龙之谷手游》安全测试的那点事的相关文章

龙之谷2.0开启测试 性感小萝莉舞娘极速升级

[科技讯]8月29日消息,龙之谷2.0版本日前正式开启测试.此次2.0活动奖励丰厚,不仅有新职业舞娘提供选择,50级JUMP活动更是十分诱人.大量玩家涌入龙之谷,人气异常火爆. 活动期间,50级JUMP活动再次开启.此前有玩家错过了第一次的50级JUMP活动,而此次活动只要玩家账号内拥有http://www.aliyun.com/zixun/aggregation/28603.html">游戏账号,均可申请一个50级账号(其中,舞娘相关职业除外),不仅如此,玩家玩家所获50级角色完成二转,

盛大张向东:下半年超30款手游等待测试推出

[TechWeb报道]7月24日消息,第十届中国国际互动娱乐产业高峰论坛今日在上海浦东嘉里中心开幕.盛大游戏有限公司CEO张向东在演讲时表示,2013年第一季度,盛大移动游戏收入超过了1亿元,下半年会有超过30款的手游产品在等待测试和推出.张向东表示,经过这一系列的产品摸索之后,盛大已经找到另外一条适合自己发展的手游策略,即在运营上采取了从海外的成熟市场去切入,在产品上推动联盟合作的方式去开发和获取新的产品资源.通过海外的学习和积累之后,再进入国内市场.希望这是对中国手游产业有帮助的做法.张向东

快游真男人手游推荐高潮迭起的FeeL倍儿爽!!

不论游戏排行榜前十怎么变换,作动游戏定占据着一席之地.这不仅仅因为大家都经历过,双截龙.魂斗罗"打打杀杀"的热血青春:更因为作动游戏可以帮助我们缓解生活和工作上的压力.一款好的动作游戏,势必要有华丽的技能招式.爽快的打击感,以及流畅的操控感.最好,再来点给力的剧情.做为中国手游新锐互动平台,快游在这里为大家推荐几款超爽游戏,下面给大家分享的可都是压箱宝哦--几款非常优秀的动作类游戏.一起来体验下拳拳到肉.刀刀见血的畅快感吧.影之刃暗黑古龙风动作手游<影之刃>,这是笔者最近最

龙之谷性感美女战神HANA:更爱近身肉搏

众所周之<龙之谷>创建人物是不能选择性别的,但它清鲜可爱的画面吸引着大批的MM.不过,不是所有MM都喜欢远程攻击,她们当中有些人更爱近身肉搏.本期多玩有约的嘉宾是来自<龙之谷>四区的HANA,因为害怕别人知道自己是MM,所以她在游戏中给自己取名MrLee.在游戏当中,她喜欢背着斧子奔跑,更爱拿着斧子砍人. PK胜率70%,拿斧子砍人很惬意 因为喜欢近战职业,HANA在<龙之谷>里玩的是战神,喜欢背着斧子奔跑,更爱拿着斧子砍人.目前她的胜率70%左右,自认还有待提高.平常

“安沃游戏”联手盛大发行龙之谷正版手游,破晓之势展开创业

DoNews游戏3月16日消息(编辑曹阳)移动广告平台安沃传媒正式宣布进军移动游戏发行领域,推出独立游戏品牌"安沃游戏".同时,安沃游戏将联手盛大游戏发行<龙之谷>正版授权授手游<龙之谷:破晓奇兵>. 安沃CEO郭伟在发布会上透露,安沃游戏依托安沃移动广告平台超过5亿的用户覆盖资源,日均20多亿次的广告曝光量,对于手游推广多年丰富的经验及数据积累.在整体上,安沃游戏将以"精调.精推"的战略发行精品游戏,每年集中资源主打3-4款产品. 目前,除

游戏回顾:《龙之谷》等新游出现BUG引发玩家不满

22日技术封测的<龙之谷>画面很受玩家欢迎,引入很多单机游戏设置,无论是界面还是操作,唯一的区别应该是游戏内能使很多玩家同时游戏,就像是在一个超大型的局域网内一起联机玩单机时一样,有玩家是FPS+ARPG的结晶.称号系统和纹章系统较有特色,每件装备使用后外观都会发生变化.封测至今,网通区玩家称游戏卡.白屏.瞬断等状况较为普遍,目前论坛版主已开帖让玩家自发讨论以求早日解决这一问题.[page] <真女神转生>画质秉承了日式游戏一贯的唯美风格,美观细腻,最主要的问题是稍显单调.仲魔系统

古龙群侠传手游哪个角色好 男性女性角色选择攻略

  古龙群侠传游戏中有两大角色可供选择:一男一女.而男性角色和女性角色在成长以及资质方面相同,并不会造成玩家主角之间的不平衡.所以玩家们完全可以凭着自己的喜好来选,没有差别的. 不过根据之前的同类游戏来说,女性角色在敏捷度上会好一点,男性角色在体力上会好一点,不知道之后官方会不会做出调整. 关于古龙群侠传手游角色选择就介绍完了,选择男性角色还是女性角色,就要看各位的喜好了.

古龙群侠传手游金币怎么获得 古龙群侠传手游金币获得攻略

  1.闯副本,最直接的金币获取方式. 2.征战玩法和点石成金,游戏中的特色玩法,金币报酬非常丰富. 3.将自己不需要的装备.素材等等卖掉,可以换取金币. 以上关于古龙群侠传手游金币获取途径就介绍完了,金币的重要性相信游戏玩家都动,所以大家还是多多刷取.慎重使用为好.

“晨网”抢票新网游《龙之谷》

可登录bbs.cqcb.com抢盛大新网游激活码 本报讯 7月22日,由盛大网络代理的动作型网络游戏---<龙之谷>,将全面进入开放测试期,而从即日起,玩家可通过晨网论坛85商城首页(http://bbs.cqcb.com),抢票最先体验权.据了解,玩家只要跟帖本次活动专帖,即可获得包含激活码在内的客户端一套,可在开放测试前 2天(7月20日)进入游戏,抢先试玩. 另据盛大网络介绍,<龙之谷>为韩国最新动作类型网络游戏,在国内知名的游戏网站17173等新游戏期待榜中排名第一.&qu