游戏修改器源码-围攻插件——关于《龙谷手游》安全测试的小事

项目背景

插件的危害

随着智能手机的全面普及和泛娱乐市场的泛娱乐,联通游戏产业发展迅速,无论是市场营收还是用户规模,手游都早已占据了半壁江山的游戏市场。如此火爆的市场,吸引了大量外挂、辅助工作室等非法盈利团队,严重影响了游戏的盈利和平衡,缩短了游戏的生命周期,外挂手游产生了这种危害。

手游插件的八大危害

为了防止这种损害,腾讯游戏的内部测试流程早就将“手游安全测试”设置为强制性环节,腾讯的手游大多会在上线前进行手游安全测试,《王者荣耀》《穿越火线:枪战王者》《梦幻仙侠》等六星游戏积极寻求每个版本的手游漏洞扫描。《龙谷手游》也是如此。

新增“龙谷手游”

《龙谷》在游戏末期遭遇了游戏插件的“洗礼”,从简单的游戏记忆变化、变速蠕虫到侧面越来越猛烈的N倍力量打击,无敌吊挂、壁挂,一度被玩家统称为“插件谷”。《龙谷手游》依然延续了ACT题材的玩法和类型,以原貌还原了终局游戏的经典,在手游版发布之前,游戏测试运营团队将继续将游戏安全作为重要专长。

为了吸取手游的历史教训,防止手游上线后游戏插件的再次出现,”

《龙谷手游》测试团队选择与腾讯WeTest合作,采用手游安全测试专家模式,对游戏客户、服务器、通信合同的安全质量进行全面把控。成功上线后,腾讯WeTest团队整理了《龙谷手游》安全测试过程中的一些思路和实用内容,并与外界分享。

技术难点手游

的使用场景与传统应用有很大不同,不同的玩法和技术实现也不同,因此手游安全测试团队需要针对每款游戏从头开始研究游戏的内部实现架构。经过分析,

“龙谷手游”使用谷歌protobuf组件实现合约数据通信,而腾讯WeTest手游安全测试团队拥有protobuf等主流合约结构的人工接入和解析技术游戏修改器源码,无需借助proto文件手动提取游戏合约结构代码,手动分析游戏通信合约的明文点, 并完成通信合同工具的接入。《龙谷手游》属于中型RPG类型,具有实时PVP玩法,包括多种类型副本、小游戏玩法、公会、家园、阶梯赛、英雄战场、世界首领等50多个功能系统,如何在短时间内完成全内容漏洞检查是当时最大的挑战。手游安全测试团队一方面利用功能风险智能分析系统、被盗漏洞扫描和拒绝服务电源扫描对游戏漏洞进行人工监控,另一方面根据各功能的风险和优先级,对游戏的战斗系统、交换和战斗力增长系统进行深入分析和漏洞挖掘。

功能风险情报分析流程

实现方案

测试目标根据手游安全测试

团队多年的腾讯游戏测试经验,手游安全漏洞主要出现在客户端、游戏逻辑和服务器三个层面。

测试前的解剖结构如上所述,不同的技术

会使用不同的技术来实现,因此在《龙谷手游》安全测试之初,团队对游戏进行了详细的分析和拆解。

游戏实施 – 在游戏中拆分风险节点

在分析过程中,

测试团队发现,《龙谷手游》的“战斗系统”和“交易系统”是手游漏洞形成的高风险模块,下面也将从这两块开始,拆分其中的风险节点。

战斗系统 – 单人模式与多人游戏模式相结合

√《龙谷手游》的核心玩法包括PVP和PVE战斗系统以及各种模式的复制单机模式:主线任务属于单机模式,战斗过程完全由客户端实现,测试可以通过内存变化和功能变化,重点挖掘漏洞;

√多人游戏模式:神殿地下城、1V1天梯赛、队长护卫等属于多人在线模式,战斗过程的实现由客户端和服务器方合作完成。根据实施情况,漏洞挖掘优先使用合约测试工具,在验证部分风险项时仍使用客户端视频内存、功能和变速测试工具。

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

游戏允许玩家通过交易所进行交易和流通物品,安全漏洞的影响会被交易系统进一步放大,也是插件检查和漏洞挖掘的优先。

对于人工巡演方式的具体分拆,可以看到右图中的安全风险分析示例(部分):

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

除了上述插件风险外,服务器端程序的健壮性还需要通过拒绝服务电源扫描来衡量。

根据

衍生出来的《龙谷手游》,测试团队基本确认了游戏的核心玩法在于多人PVP或PVE模式及其丰富的交易系统,因此团队也将测试策略调整为“协议测试为主,功能和内存变化测试为辅”。

游戏引擎 – 在引擎和实现之间找到突破口

游戏是使用 Unity3D 引擎开发的,此类游戏的源代码通常使用 C#、Lua C++中的一个或多个。在分析后,“龙谷”客户端的部分代码逻辑使用的是C#脚本语言,但出于安全考虑,开发团队已经在游戏安装包中加密了客户端逻辑代码文件Xxxxxclient.dll,因此在反向分析之前必须对文件进行揭示才能获得明文。获取纯文本源代码的方法有很多种:

1.反向揭秘功能

,借助游戏揭秘功能揭秘;

2. 在游戏运行过程中从视频内存中转储 xxxxx客户端.dll

3. HookMono 函数 mono_image_open_from_data_with_name () 和 mono_class_from_name() 也可以获取明文源代码。

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

游戏风险分析完成后,漏洞挖掘工作完成一半以上,然后借助安全测试工具对风险进行逐一验证。在游戏中发现了以下类型的漏洞,所有这些漏洞都是致命的:

类型 1:插件漏洞

(1) PVP 模式加速连接

(2)PVE主线副本存在无敌闪杀、全面屏强电击杀等大量安全漏洞

单击边框以显示视频工具栏

“PVP阶梯加速”漏洞视频

单击边框以显示视频工具栏

无敌全屏闪电交易“漏洞视频

类型 2:利用漏洞

(1)拍卖可以随意复制物品,无限窃取龙币

(2)驱逐花园里的哥布林可以偷走无限的奖励

单击边框以显示视频工具栏

“拍卖复制物品”漏洞视频

类型 3:停机漏洞

(1)在Pokédex分解的诉状中,由于构建的PokédexID异常导致服务器关闭

(2)在指南分解的诉求中,异常图例的数量导致服务器宕机

(3)在帮派、竞技场、小册子店的点餐请求中,由于构建的物品数量异常导致服务器关闭

(4)纹章淬火诉状中,结构异常导致服务器停机导致的异常淬火次数

溶液

插件漏洞

- 有多种方法可以实现变速漏洞,并且有相应的修补解决方案。监控系统时变功能是否被篡改,以测量通用变速器等级的变速器;更改游戏中保存角色连接速率变量的视频内存也可以通过视频内存加密、设置阴影变量和服务器坐标校准来解决。

-

对于 PVE 单机副本插件漏洞的处理,可以从副本结算请求的内容做文章。例如,增加跟单质询序列号,避免结算重发;添加CRC,md5或一些冗余信息,以避免篡改和解请求;通过服务器安全策略校准,增加战斗过程数据采样甚至隐身NPC,避免无敌闪杀、全屏强电打击等类型插件。

利用漏洞

-服务器端处理请求时,如下单、结算等,需要加大对请求中信息的合法性的校准,操作端可以访问运营子系统,实时监控和报警各种道具和金钱的输出。

停机漏洞

-检查程序健壮性导致的服务器停机漏洞后,打补丁相对简单,只有有针对性地处理异常值才能打补丁。

最终功效在项目测试阶段,手游

安全测试团队挖掘了《龙谷手游》的7个致命级漏洞、8个高危漏洞和5个中级漏洞,揭开了龙币被盗刷、PVP/PVE插件、服务器停机等潜伏在游戏中的各种致命高风险漏洞,提前制定了补丁方案, 并对初步检查结果和风险进行评估和评价。手游安全漏洞的测试,为“龙谷手游”项目团队避免了经济损失,为游戏在不删除文件的情况下打开提供了坚实的支持和保障,为用户提供了安全、公平、健康的游戏环境。

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

自2011年初以来,腾讯WeTest手游安全测试团队一直在手游安全领域进行技术探索和积累游戏修改器源码,致力于打造行业领先的手游安全测试技术解决方案,通过早期检测游戏版本中的安全漏洞,预警风险,并以工具支持腾讯所有在研运营的手游项目。团队使用与即将推出的服务器相同的游戏客户端和服务器,模拟插件工作室的插件制作过程,并利用自身的技术积累提高专业性,持续保持漏洞检测率。

目前提供专家测试服务,希望通过提前检测游戏版本中的安全漏洞并预警风险,帮助提升腾讯游戏的品牌和美誉度。

###答案1:《Unity3D/2D游戏开发从0到1》是刘国柱写的一本完整的书,主要介绍了使用Unity3D/2D进行游戏开发的整个过程。 本书从Unity3D/2D的基础知识入手金币游戏源码,介绍Unity的界面、组件、场景布局等概念和基本操作。 然后,本书详细讲解了游戏对象和组件的概念,以及如何使用Unity编辑器设计和制作场景。 在游戏开发过程中,材质的使用是不可忽视的一部分。 本书介绍了如何使用Unity自带的资源以及如何导出外部材质,包括模型、纹理、音效等,同时还讲解了如何对材质进行编辑、处理、优化以实现游戏的最佳性能和质量。 本书还深入介绍了Unity中的脚本编程,包括C#脚本的基本句型、面向对象编程、游戏逻辑的设计与实现等。通过学习脚本编程,读者可以掌握如何创建游戏元素比如角色控制、敌人AI、游戏界面、游戏场景等,并将它们组合成一个完整的游戏。 此外,本书还介绍了如何使用Unity的数学引擎和碰撞系统,以及如何在游戏中实现各种化学效果。 同时,还讲解了基于时间和事件的游戏控制方法,包括定时器、动画控制等。最后,本书还介绍了一些中间技术和工具,如光影效果、粒子效果、移动和动画效果等。 VR 游戏开发等等。

这些内容可以帮助读者更深入地了解Unity的功能和应用,提高游戏质量和用户体验。 总之,《Unity3D/2D游戏开发从0到1》是一本适合初学者的教程书。 通过学习本书,读者可以全面掌握Unity3D/2D的开发流程和技术,从零到一独立完成一款游戏。 项目。 ###答案2:《Unity3D/2D游戏开发从0到1》是刘国柱编绘的游戏开发入门书籍。 本书采用Unity3D/2D作为开发工具,全面介绍从零开始游戏开发的流程和方法。 书中内容包括基础知识、项目搭建、角色设计、场景创建、对象控制、游戏逻辑、音效与动画、UI界面、碰撞测量等。结合具体实例,作者详细讲解了如何使用Unity3D/2D 从头开始​​制作游戏。 在基础知识部分金币游戏源码,作者介绍了Unity3D/2D的基本操作和界面布局,帮助读者快速上手。 然后,作者通过简单的小项目引导读者逐步学习和掌握游戏开发的流程和方法。 通过实践方法,读者可以逐步实现一个完整的游戏项目。 在角色设计和场景创建方面,作者介绍了如何使用Unity提供的各种工具和组件来创建游戏场景和角色。 同时,作者还讲解了如何使用脚本语言来控制游戏对象的行为,包括交流、跳跃、攻击等动作。

在游戏逻辑部分,作者引导读者学习如何设计游戏规则和关卡,以及如何实现游戏的各种功能,如计分系统、任务系统等。作者还介绍了如何使用动画和声音画质降低了游戏的视听效果。 在UI界面和碰撞检查方面,作者详细讲解了如何创建游戏界面和按钮,以及如何处理游戏中的碰撞风暴和碰撞检查。 这些内容对于游戏的交互和玩法设计非常重要。 总体来说,本书具有循序渐进、案例丰富、操作实际的特点。 非常适合初学者入门和了解Unity3D/2D游戏开发。 无论你是想自己制作小游戏,还是想了解更多游戏开发技术,这本书都是不错的选择。