zoukankan      html  css  js  c++  java
  • 手游破解手段介绍及易盾保护方案

    本文来自网易云社区

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

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

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

  • 相关阅读:
    2个准则,解决人际、团队和客户问题
    系统思维
    如何看透他人行为背后的本质 | 思维模型02:行为分析模型
    提问比回答更有力量
    有了套路,为什么还是解决不了问题
    能够跨界成功的人
    正确的思考
    你的烦恼,全因为不会思考
    努力,到底是不是天赋
    我们是魔术师面前的观众吗
  • 原文地址:https://www.cnblogs.com/163yun/p/9436381.html
Copyright © 2011-2022 走看看