Android安全
动态链接库与内存Dump结果修复

腾讯游戏安全技术竞赛2023 安卓客户端初赛安卓题目是由Unity写的游戏,其中又有il2cpp ,一般情况下都是直接使用global-metadata.dat 和libil2cpp.so 拿到il2cpp相关数据以此来辅助逆向工程,但是在这个题目中libil2cpp.so 被加密,在游戏运行初始化时由其他代码进行解密后加载入内存。所以直接使用Il2CppDumper 会出现问题无法正常获取数据。 实际上如果设备已经获取ROOT权限并且安装有面具,则可以使用https://github.com/Perfare/Zygisk-Il2CppDumper,与上面提到的Il2CppDumper 为同一作者,该项目直接安装模块,在游戏运行过程中Dump出逆向所需要的信息,经测试是可以无视保护措施进行dump。但是无论如何要想进一步进行逆向分析少不了拿到解密后的动态链接库文件,然后进行修复以更好地进行静态分析。由此引出这篇文章,主要学习参考了下面提到的几篇文章,在此记录学习。

Android-Flutter逆向

因为WMCTF2023的一道用Flutter写的Android游戏题而引出这篇文章,刚好一直想研究一下Flutter,这次趁这个机会研究一下,并且介绍一种基于Patch Flutter动态链接库实现辅助解析Flutter逆向工程符号的方法。这个方法理论上支持任意Flutter版本,而且具有高度定制化的特点,缺点是需要根据特定的版本重新编译,并且需要替换动态链接库,存在被检测到的可能。

CVE-2021-0928漏洞分析

该漏洞在Android 12 Developer Preview 3版本是上被发现,并在Android 12 release中就已经完成了修复。本文进行简单分析

De1CTF-2020-Pwn-BroadCastTest

这道题目利用的是Parcel MisMatch进行漏洞利用,和直接在系统上通过AddAcount利用造成LaunchAnyWhere原理一样,但是有些细节还是不太一样,需要记录一下。

CVE-2022-20452-LeakValue

对LazyBundle机制进行了分析,对漏洞原理进行了简单分析,但是漏洞利用复杂,这里没有详细说明

Android反序列化漏洞-Bundle风水

因为去年的某厂商利用其主流APP中的漏洞对Android设备进行大面积的攻击使用了这一漏洞,对这个问题比较感兴趣,阅读一些相关文章后决定结合理解进行整理再做记录。文章介绍了Parcel不匹配问题和Bundle风水的利用细节,并结合CVE-2017-13288和CVE-2023-20963进行分析

LaunchAnyWhere漏洞分析

该文介绍了Android系统中的LaunchAnyWhere漏洞,该漏洞可以绕过Activity组件的导出属性,直接启动任意组件。文章详细介绍了漏洞的原理、利用方法以及修复措施。LaunchAnyWhere 顾名思义就是能够掉起任意未导出的Activity,突破进程间组件访问隔离的限制。这个漏洞影响2.3 ~ 4.3的安卓系统。以下攻击环境为Android4.2 (API 17)

Magisk V26.1源码分析

文章对MagiskV26.1 源码 进行了大致分析