弱鸡娱乐网 · 免费提供绿色软件、活动线报以及其他网络资源,好货不私藏!

【手游破解】【技术教程】一次关于国外加固liapp的分析

zhangzhyu 安卓软件

导语:常见于谷歌商店内的一些游戏

分析思路第一步,结合网上有限的线索掌握关键信息。该加固无代码抽取。主要运用为混淆、动态注册native、多线程执行验证(root、签名、Frida)。

一开始的思路为解决Java上的一个线程调用,解决Java的退出。该方法成功让我们的存活时间延长了30秒。且java层再无其他调用

现在只能将关注点转移到native,因为我们通过打印可知其实大量方法是通过native进行反射调用我们从Java出发的追踪很麻烦。且dex字节码都是动态生成的

所以与其想那么多不如直接进攻native,其加固so不到1m大小,地址再多可以多到哪里去[滑稽]暴力监听所有线程包括子线程的创建(这个作为一名c开发者来说非常熟悉,耗时的检测操作就喜欢疯狂开线程[滑稽])

根据拿到的入口等地址,接下来进入我们最耗时的逆向,逐一分析f5看代码相关调用,根据经验猜逻辑

最后抓出了几个线程的创建进行ret,游戏存活时间延长10秒,弹窗消失[滑稽]

胜利不远了,这时的退出非常有趣了,Java层、c层都拦截不到。只能一路看调用找到了最终的线程开始处51500,这个地址。伪代码达到了1000多条在这个不到1m的文件下。这个代码量绝对核心。

两眼一闭[呵呵]继续看c代码。一些关键的代码:

strcpy((char *)(v16 - 520), "magisk(Alpha)");

sub_24218(0x1B8Eu, 0x100u, v16 - 520); 好了一个面具的检测,终于让我百分之八十确定了这个方法是个主要的初始化代码可能用于生成动态dex?注册native?建立大量检测线程?

如果直接ret她会导致我们的游戏进入不了,为此只能转为分析出所有关键线程启动位置进行ret。

最终总共耗时1个小时完成整个游戏的过签。

该加固最终总结是不难,但是烦人以我对游戏逆向的习惯。纯靠手动去分析的游戏我是最烦的(所以一些混淆方法名的游戏我很烦),更喜欢分析完成后可以写出自动化的功能脚本 一运行cmd滑滑出现大量成功日志那种[滑稽]所以本次教程我们没有什么自动化脚本提供,全部都是针对性某一个位置或者分析需求写的一些分析代码。个人能力有限找不到共同点以作锚点

分析结束[呵呵]

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

评论列表
请自觉遵守互联网相关的政策法规,严禁发布广告、色情、暴力、反动的言论。
  • 点击我更换图片
  • 全部评论(0
    还没有评论,快来抢沙发吧!