博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android手游外挂入侵----寓攻于守,方能破敌
阅读量:6095 次
发布时间:2019-06-20

本文共 1994 字,大约阅读时间需要 6 分钟。

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

手游外挂入侵

随着各种爆款手游的风靡,目前手机游戏的占比用户已经形成一个巨大的市场,市场上你争我夺,有将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包查看,代码没有混淆,很轻易的就找到了关键的实现函数(具体实现原理可以参考《  》,这里提到过同样实现的方法):

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

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

相关文章:

【推荐】 
【推荐】 
【推荐】 

转载地址:http://emgwa.baihongyu.com/

你可能感兴趣的文章
四种简单的排序算法(转)
查看>>
Quartz2D之着色器使用初步
查看>>
多线程条件
查看>>
Git [remote rejected] xxxx->xxxx <no such ref>修复了推送分支的错误
查看>>
Porter/Duff,图片加遮罩setColorFilter
查看>>
黄聪:VMware安装Ubuntu10.10【图解】转
查看>>
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
vue实现点击展开,点击收起
查看>>
如何使frame能居中显示
查看>>
第k小数
查看>>
构建之法阅读笔记三
查看>>
Python/PHP 远程文件/图片 下载
查看>>
【原创】一文彻底搞懂安卓WebView白名单校验
查看>>
写给对前途迷茫的朋友:五句话定会改变你的人生
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
mysql练习题40道
查看>>
JAVA入门到精通-第86讲-半双工/全双工
查看>>
bulk
查看>>
js document.activeElement 获得焦点的元素
查看>>