Android手游外挂入侵----寓攻于守,方能破敌

手游外挂攻防战
随着手游市场的扩大,外挂产业也随之兴起。专业团队通过破解游戏、植入加速器等插件,重打包后在自家应用商店销售。同时,外挂接口服务提供商开发底层框架,供上层开发者调用。网易云易盾不断加强手游加固产品,推出新型外挂感知功能,进行精准定位和清理。


欢迎访问网易云社区,了解更多网易技术产品运营经验。


手游外挂入侵


随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将PC版本移植到手机中,也有新模式手游的推出。随着市场的扩大,除了手游产业的兴起壮大,也滋生出了手游的各种外挂产业。


现在市面上流行的手游外挂,总的来说包括了模拟触摸类、加速器、修改器,基于这些外挂涵盖的功能,就能实现目前绝大部分外挂的能力,如自动打怪升级做任务、血量无限、金币自设置、游戏速度加减等等;除了这些工具党常用的手段外,一些“专业人士”也参与了进来,针对不同游戏有不同的做法,大体可以概括成以下破解手段,注入游戏Hook相关逻辑函数、调试进程、静态篡改资源文件和代码逻辑等等,这些操作需要相关的专业知识,涉及逆向、重打包、脱壳等操作,经过这些操作可以实现更有定制化功能的外挂。接下来就分享两个在手游保护过程中所遇到的典型案例。


破解游戏下载商店


(1)案例介绍

        该案例遇到的是一个专业的团队,他们负责破解游戏,向游戏中植入他们的加速器等插件,然后重打包上传到他们的应用商店中,玩家只需要下载他们的应用商店,从中找到需要的游戏,安装进入后自带各种外挂玩游戏,畅通无阻。进入游戏的界面会多一个辅助插件的窗口,提供了加减速的功能,因此需要深入分析植入的原理并找到加减速的实现。



201806041414274542afe8-e668-4fb2-91ba-60d7c9f7d540.png  

                                               商店页面展示




(2)案例原理分析


        深入分析跟进,发现游戏进程在启动时,会加载多个新的动态库,其中包括了libsubstrate.so(此为一个著名的Hook框架,接着分析找到了他通过调用框架Inline Hook了libmono.so导出的两个方法,Hook的方法mono源码参考如下:


201806041417406bf8caaf-f708-4860-b8e4-0f5381d37226.png


201806041421327b3bf0d0-eaa0-4d00-a54f-c460c78be3bd.png


通过启动进程后附加,获取到Hook调用的函数,通过分析得知,mono_class_from_name函数是mono在解析DLL方法时会经过的一个函数,hook此函数后,在调用前,对参数中方法名、命名空间进行判断,最终通过调用mono_class_get_method_from_name获取到UnityEngine.Time.set_timeScale方法,该方法的作用便是设置游戏时间的流速。


Hook代码(IDA反编译):


201806041422410c80fe07-cb80-4fc6-9c09-9d8106adbde9.png 


        再通过hook的第二个函数mono_runtime_invoke,进行调用该方法,将设置的参数传入,通过对游戏时间流速的更改设置,达到加速器的作用。


Hook代码(IDA反编译):


2018060414244664e26c14-d67a-4a52-a0c7-40274b067399.png 


外挂接口服务提供商

(1)案例介绍

        随着手游市场的崛起,外挂的增多,外挂市场的商人们似乎也意识到外挂开发者也在大量的涌进,绝大多数都能够写点脚本开发外挂,那么商人们就开始着手底层,通过找寻到的“专业人士”开发底层框架,提供接口供上层开发者调用,把逻辑的实现交给他们。



20180604142546673ace7a-885d-47b7-90ea-61fd6a15beb6.png


                                                     某外挂框架介绍


      在最近的客户反馈中,一个游戏遇到了一个框架类定制的外挂,外挂作者通过该框架实现了一套自动化点击的脚本,完全无需人工进行操作。这类方式的实现,将底层深入的原理实现进行了封装,最后以API的形式提供给玩家,玩家仅需要一定的编程基础便可以掌握进行二次开发。


(2)案例原理分析

        深入分析该框架类软件,发现它使用ROOT权限启动了一个疑似输入的可执行文件(/data/data/my.apk/app_data/input),从该路径下提取该可执行文件进行分析,从中找到了它使用app_process命令执行了一个名为input.jar的文件。

以下为IDA解析出来的伪代码,作为参考。


2018060414340358b74788-2c12-4763-b016-0d37c1243598.png  


使用工具打开jar包查看,代码没有混淆,很轻易的就找到了关键的实现函数(具体实现原理可以参考《  Android中模拟点击类软件实现原理探究》,这里提到过同样实现的方法):


2018060414371680fbc8f0-d395-4b67-829a-bc0a53e8d877.png  


通过jar包实现了模拟点击,与上层使用socket和其他进程进行通信,用户通过lua脚本控制代码逻辑,整个框架流程大致如此。



手游外挂辅助产业链兴起


案例介绍

收到了来自一些游戏的反馈,发现了手游外挂辅助的产业已经在阴暗的角落处开始萌芽,这些地方可能来自QQ群、贴吧、论坛、某宝等等,他们中有通过传授工具外挂使用方法达到目的的,有通过破解篡改游戏代码逻辑实现的,甚至有提供框架API调用完成的。




20180604143837a1ea4d87-865f-4c33-b498-31f87a9b0d0e.png


                                                    QQ群搜索查找




20180604143854cc10be0e-21da-44b9-a1b7-54de3cd1c754.png


                                                                            网络售卖破解版


可以看到,从Q群到淘宝,无论是工具党还是专业人士,都开始向手游市场下手,都想在这块市场获取利益。从相关游戏处了解到,不同游戏都或多或少有定制化的外挂存在。



在不断与外挂的攻防对战中,网易云易盾一直在加强巩固我们的手游加固产品对抗外挂的功能,总结了不同外挂的特性和攻击手段,在对已知外挂的抵御功能之上,推出了针对新型外挂的感知功能,做到寓攻于守、攻守兼备,新的反外挂系统,除了有新型外挂的感知功能,还有对使用外挂的用户、设备机型、外挂类型及详细特征等等进行定位,更好地对恶意用户进行取证和清理。可以 免费试用





相关文章:
【推荐】 JavaScript 如何工作:渲染引擎和性能优化技巧
【推荐】 3分钟掌握一个有数小技能:制作导航页面
【推荐】 “货品未动,数据先行”,德邦快递与网易云联合打造“智能物流”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值