freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

知物由学 | 遇到外挂,游戏厂商怎么办?
2021-10-09 14:36:09

随着移动互联网的发展,手机游戏行业经历了巨大的变迁,不仅仅是从技术上的革新,游戏实现能力更是有了飞跃式发展,但是在手游市场竞争日趋激烈的背后,其安全正受到网络黑产的巨大威胁,非正当获利在移动游戏领域屡见不鲜,外挂等安全性问题成了开发者们不得不面对的难题。

据《2020移动游戏质量白皮书》数据统计,国内定制类外挂比例达到66%,较19年增长6.5倍。海外定制类外挂比例已经达到了62%,较2019年增长了足足3倍,尤其是强竞技游戏品类的外挂对抗挑战持续增大。

在2020年,造成严重影响的安全漏洞占比增长至51.34%,致命影响的安全漏洞占比降低至25.57%。通过对所有安全漏洞的分析,最为频繁的手游安全漏洞问题为“绕过状态限制”。在游戏中使用未拥有的皮肤和表情、未完成任务就领取奖励等是常见的外挂现象。

面对层出不穷的游戏外挂,游戏厂商能够做些什么呢?本文就主要危害游戏平衡的外挂分类、特性进行介绍,并提供针对性解决办法,希望对游戏从业人员和爱好者有所帮助。

01 外挂分类

根据不同的游戏类型,相对应的定制外挂的类型也有所不同,因而防御外挂的前提便是先了解外挂,只有先了解外挂,游戏厂商才能根据定制游戏外挂的特性进行针对性防御。

手游外挂中外挂破解主要往三个大方向出发,即动态破解、静态破解与协议破解。

1.1. 动态破解

动态破解主要以修改器与加速器为主,其主要原理为不修改游戏文件,使用外部辅助软件修改游戏内存数据。凭借数据修改,动态破解往往会增加游戏中的金钱、技能伤害数值、时间数值等,以打破游戏的公平性。

在外挂工具中,游戏修改器是出现频率最高的,修改器可以轻易将武器伤害从18%改成999.9%,使得攻击伤害提升几十倍。类似的原理也可以实现无敌、秒杀、无限蓝、技能无 CD 等效果。因此,游戏修改器严重危害游戏平衡性。而加速器则主要分为两种,一种是手机加速器,通常游戏修改器都会附带加速功能,另一种是模拟器加速。

1.2. 静态破解

静态破解常常被称为“端改”,即玩家常说的“XXX游戏的破解版”。这种破解版是通过修改游戏里面的文件或者脚本,重新打包后再游玩,其往往以“科技版”“辅助版”的形式在线上进行售卖,甚至由各个游戏工作室使用。

破解版提供了众多新奇、怪异的功能来吸引玩家,售卖时大多支持月付,价格上甚至可以超过很多游戏的ARPU值。这种形式不光影响普通玩家体验,也给游戏收入和口碑造成损伤。

1.3. 协议破解

协议破解即玩家所称的“脱机挂”,部分游戏协议一旦被分析出来,可以实现纯协议的客户端,或者是半脱机,以此来修改游戏封包来修改游戏行为。可以通过搭建代理服务来动态修改封包,实现10倍血量10倍攻击等效果。相当于半脱机外挂。

02 应对方式

在了解外挂原理与特性之后,游戏厂商可以有针对性地对外挂进行防护反击。

2.1. 动态破解

针对各类修改器、加速器,外挂防治需要主攻“检测”环节。游戏厂商可通过对游戏进程的读写,在识别游戏行为的同时,一并识别修改器、加速器,并强制关闭游戏进程,以防止外挂作弊。

另一种应对方向是针对动态调试的保护,其中包括防动态注入、防动态调试和防内存dump。反调试机制能够拒绝调试工具的附加操作,阻止调试器对移动应用开展调试分析,保护其业务逻辑代码,一旦被加固的程序检测到诸如gdb一类的调试操作,应用程序将自动退出运行。防内存dump保护能有效阻止gdb dump等操作,同时因为代码采用函数体分离方式和native化保护,代码都是以单个函数还原到内存中,而内存中的代码也是经过native处理,及时dump出当前代码片段,也是经过native方式处理后的代码,不会还原成源代码。

2.2. 静态破解

针对各类“破解版”、“辅助版”,外挂防治需要主攻“加密”这一点。游戏保护模块都带有文件校验功能,通过加密脚本、资源文件(如assetbundle资源加密)、签名保护等方式,防止游戏被破解,且同时采用验证系统,文件被修改时游戏就不能正常运行,以此防止二次打包、二次开发,生成“破解版”“辅助版”。

此外,治理该类外挂还可以从代码校验上着手,并配合虚拟机保护,必要时候加上简单的驱动。一整套机制可以将封包加密、解密,独立形成一个动态连接库(DLL),供游戏主程序调用,进行封包加解密。

随后,更换封包加密、解密方式,防止破解者采用替换旧客户端的方式进入游戏。在加密、解密函数里加入对反外挂线程的检测,检测反外挂线程是否正常运行,如果检测到非法情况,同样对服务器进行报告,并主动切断与游戏服务器的连接。

最后,游戏厂商再加入一些反调试和驱动技术,对游戏进行保护。

2.3. 脱机挂

针对脱机挂,外挂防治需要主攻“独特性”这一点。可采取数据签名保护,客户端对输入数据进行签名,生成一个签名值。如果破解者无法分析出签名算法,就无法模拟协议,也不能篡改数据。

除了以上三大类的外挂作弊防治手段之外,游戏厂商需要加强对反编译漏洞、内存漏洞以及调试漏洞的防护,了解并应用存档加密、行为检测、反多开器、反地理位置模拟等技术,充分适应反外挂工作的长期性和复杂性。

03 总结

在外挂情形如此严峻的情况下,游戏厂商建立专门的软件安全小组,或与游戏安全类公司开展合作是必然趋势。其部门需要做到及时的收集外挂信息、分析外挂所使用的技术和寻求防治外挂的最佳方式,写出相应的检测及防护代码,及时更新游戏。

如今,游戏制作应用的技术原理日趋复杂,涉及广泛的专业人员,移动端游戏已形成巨大的产业链,所涉及的商业价值也越来越大,因而所衍生的外挂防治问题也愈为重要。移动端游戏安全系统价值在于维护公平的游戏环境、保护玩家财产、提高用户体验感。

# 游戏安全 # 外挂
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
  • 0 文章数
  • 0 关注者
文章目录