文档章节

手游破解手段介绍及易盾保护方案

o
 osc_4nmshwhm
发布于 2018/08/07 13:02
字数 2254
阅读 5
收藏 0

精选30+云产品,助力企业轻松上云!>>>

本文来自网易云社区

 

手游已经超过端游,成为市场份额最大的游戏类型。对应的外挂产业也成长迅速,技术水准越来越高,对市面流行的手游引擎都有比较深入的研究。

现阶段如果一款游戏没有做任何保护,并且有数据放在本地计算的话,外挂从业者可以快速做出外挂。比较典型的案例就是旅行青蛙,这个游戏没有做任何保护,突然火了后,出现了各种功能多样的破解版。百度搜索破解关键词,结果有300多万条。

手游破解通常都从如下三个大方向来做:动态破解、静态破解、协议破解。

一、动态破解

不对包进行修改,而是使用外部工具进行外挂功能。

动态破解主要包含修改器和加速器。

1.修改器

修改器的原理是修改游戏内存数据,达到秒杀、无敌、倍攻、穿墙等变态技能。

目前最流行的是GameGuard修改器(也称作GG修改器)。

下图是使用GG修改器修改三叶草数量的动画。可以通过修改器把三叶草的数量修改成9999。


除了上面的手动操作,GG修改器还可以使用lua脚本操作,这样就大大降低了使用门槛,只要花上几十块买个脚本就免去了复杂而有难度的重复操作。使用界面如下图所示:


下图是某QQ群里售卖的lua脚本


GameGuard修改器除了数据修改功能外,还带有过游戏保护的功能。

腾讯自营和联营的手游统一使用腾讯自己研发的MTP游戏保护。MTP保护带有反修改器功能,检测到修改器后会让游戏退出。后来GameGuard修改器进行了版本升级,内置了pass腾讯MTP游戏保护功能,使得GG修改器能正常使用,并且在官方网站挂出如下视频:


2.加速器

加速器是比较常见的作弊工具。

同样拿旅行青蛙来做示例,使用效果如下,可以让三叶草快速成长。正常情况下,三叶草长满池子需要几天,加速后只需要几秒钟。



二、静态破解

也就是端改,玩家常常称这样的破解版为科技端。这种破解是通过修改游戏里面的文件或者脚本,然后重打包来实现各种功能。

端改常常被拿出来售卖或者工作室内部使用。端改的危害往往比动态破解更大。

现在破解版基本都是在QQ群售卖,只要使用游戏名+ “科技”或者”辅助” 作为关键词搜索,就可以搜索到对应游戏的破解售卖群。

图1

 

图2


图1是崩坏3的搜索结果,图2是刺激战场的搜索结果。这两个游戏都有使用游戏保护,还是存在很多外挂售卖。可见现在的黑灰产的技术能力还是非常强的。

还是以没有保护的旅行青蛙做为案例,演示如何实现无限三叶草破解版本。

这个游戏是Unity3d引擎实现,首先使用CSharp反编译工具(如dnSpy,ilSpy等工具)把如下图所示的DLL还原成源码



然后分析源码,定位到关键源码位置。如下图所示的获取三叶草数量的代码位置。


把源码修改成直接返回9999:


把修改后的源码再编译成DLL,替换原来的DLL,重打包成APK,运行后效果如下图所示,三叶草数量永久为9999,取之不尽用不之竭。


即使是没有保护的游戏,做破解版本还是有一定门槛的,需要一定的技术基础。不过在市场需求的驱使下,有多个平台APP提供破解版手游下载,如下图所示的GG大玩家和光环助手。

 

 

 

 

三、协议破解

一旦游戏协议被分析出来,可以不再依赖于游戏本身,可以实现纯协议的客户端。或者是半脱机,修改游戏封包来修改游戏行为。


如下图比较热门二次元的游戏,使用的是http协议,可以使用Fiddler抓包来分析协议,并且修改协议封包。

这样的话,就可以搭建代理服务来动态修改封包,实现10倍血量10倍攻击等效果。相当于半脱机。下图是某论坛提供的免费脱机代理。



易盾手游保护针对上述问题的解决方案:

 

一、动态破解

1. 修改器
通过对游戏进程的读写行为来识别修改器,可通杀所有修改器

2. 加速器
使用底层的方法判断是否存在加速。所有应用层方法都无法绕过我们的加速检测。

二、静态破解

游戏保护模块都带有文件校验功能,只要有文件被修改了游戏就不能正常运行,而端改又必须修改文件。

因此破解一般都要先把保护模块脱掉,使得破解后的游戏可不再依赖于保护模块运行。

基于上述原因,我们从两个角度来做保护

1. 脚本保护

1) Unity3d引擎提供函数级加密功能,并支持脚本在线更新。

2) 其它引擎提供对引擎模块的加固

2. 资源加密

1) Unity3d引擎,我们提供assetbundle资源加密以及静态资源加密

所有加解密算法,都经过我们精心构造和混淆,在确保性能和稳定性的前提下,让编译后的代码难以分析。下面是IDA分析的某个解密算法的流程图,其它加解密算法都是使用类似的方法构造。


三、脱机挂

针对脱机挂,我们提供了数据签名功能,客户端对输入数据进行签名,生成一个签名值。

如果破解者无法分析出签名算法,就无法模拟协议也不能篡改数据。

保护的核心在于客户端实现的签名算法在满足计算速度的同时,混淆要有足够的强度,使得分析者无法还原成源码算法。

除了上述提到的方法,我们还提供如下的保护功能

1. 反地理位置模拟

2. 反模拟器

3. 反模拟点击

4. 反同步器

5. 防二次打包

6. 文件校验

7. 存档加密

8. 手游引擎SO定制化加壳

除了提供这些多样的保护功能,我们还着力于提升保护的易用性。保护的使用只需要运行一条命令行,将待保护apk做为输入,即可输出带有完整保护功能的APK。整个过程不需要开发做任何对接。

易盾手游保护已经发布一年多,除了公司内部使用外,同时也对公司外部提供服务。目前已经有数十个外部用户,公司内部也有几十个手游在使用。

对于外部用户有三个比较典型的用户,在这里做一下分享。

1. 英雄互娱旗下的某沙盒类游戏,存在很多修改器和加速器

我们给他们配置了反修改器和反加速器选项,并且对脚本做了函数级加密,对U3D Assetbundle资源做了加密。加固版本上线后,游戏运营反馈用户外挂举报立马减少了99%。使用保护至今已经快一年,还没有出现过破解版。

2. B站某二次元游戏,就是上文所说的存在脱机挂云刷的游戏,后来买了我们的保护。针对他们脱机挂的问题,我们专门为他们开发了反脱机功能。上线后云刷功能立马废了,并且上线至今没有人能够破解出反脱机算法。在反脱机功能和脚本函数级加密同时使用的情况下,也没有出现破解版。

 


网易云安全(易盾)提供iOS 应用加固Android 应用加固服务,点击可免费试用。

 


本文来自网易云社区,经作者陈士留授权发布。

原文:手游破解手段介绍及易盾保护方案

 

了解 网易云 :

网易云官网:https://www.163yun.com

网易云社区:https://sq.163yun.com/blog

新用户大礼包:https://www.163yun.com/gift

 

更多网易研发、产品、运营经验分享请访问网易云社区

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
不再任人欺负!手游安全的进阶之路

本文由 网易云 发布 Unity 2018开发者大会如期而至。 每年的Unity大会都致力呈现以新锐技术与社区精神为核心的全新Unity生态圈,传播Unity最前沿的技术功能,帮助各类创意人才使用Unity进行高...

wangyiyungw
2018/05/14
0
0
不再任人欺负!手游安全的进阶之路

本文由网易云 发布。 Unity 2018开发者大会如期而至。 每年的Unity大会都致力呈现以新锐技术与社区精神为核心的全新Unity生态圈,传播Unity最前沿的技术功能,帮助各类创意人才使用Unity进行...

网易云社区
2018/07/25
0
0
不再任人欺负!手游安全的进阶之路

Unity 2018开发者大会如期而至。 每年的Unity大会都致力呈现以新锐技术与社区精神为核心的全新Unity生态圈,传播Unity最前沿的技术功能,帮助各类创意人才使用Unity进行高效的内容创作,充分...

网易云易盾
2018/05/13
0
0
直播预告:网易易盾资深工程师张本梁分享Unity手游外挂攻防之道

疫情当前 作为国内领先的内容安全&业务安全服务商 网易易盾充分发挥技术与服务优势 保障客户业务合规、稳健和安全运营 隔离病毒,但不能隔离前进的脚步 我们和Unity共同合作 直播分享《Unity...

网易易盾
02/21
17
0
手游要想反外挂,该如何正确选择可靠的第三方服务?

作者介绍:陈士留,网易易盾移动安全专家,手游智能反外挂服务的操刀“医生”。他致力于安全研究十多年,有六年多从事游戏保护研究,谙熟游戏的黑产生态和操作手法。 如果你想了解更多,可以...

网易云
2019/01/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SpringCloud- 第六篇 Hystrix参数配置(三)

1:概述 Hystrix使用Archaius作为配置属性的默认实现。官方配置文档: https://github.com/Netflix/Hystrix/wiki/Configuration 每个属性有四个优先级,依次增大: 1:代码的全局默认值 2:动...

osc_7z601p6x
27分钟前
5
0
SpringBoot2 整合JTA组件,多数据源事务管理

本文源码:GitHub·点这里 || GitEE·点这里 一、JTA组件简介 1、JTA基本概念 JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新...

osc_sju4uxml
28分钟前
11
0
Springboot + Vue + shiro 实现前后端分离、权限控制

本文总结自实习中对项目的重构。原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelAndView,逐渐有了前后端分...

osc_lbt7zo1x
30分钟前
19
0
docker-compose部署配置jenkins

docker-compose部署配置jenkins 一、docker-compose文件 version: '3.1'services: jenkins: image: jenkins/jenkins:lts volumes: - /data/jenkins/:/var/jenkins_home ......

osc_4p2c0ecc
32分钟前
22
0
第五周

1、查找/etc目录下大于1M且类型为普通文件的所有文件 2、打包/etc/目录下面所有conf结尾的文件,压缩包名称为当天的时间,并拷贝到/usr/local/src目录备份。 3、利用sed 取出ifconfig命令中本...

osc_hxm151is
33分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部