1.(二)APP脱一代壳
2.FartExt超进化之奇奇怪怪的源码新ROM工具MikRom
(二)APP脱一代壳
本文主要探讨了APP的加壳和脱壳技术,以及相关的分析工具和流程。加壳,源码即Android应用的分析保护机制,通过整体加固、源码函数抽取或VMP/Dex2C等方式,分析tis源码使得Apk文件在运行时加载壳层Dex文件,源码再进行解密和加载真实Dex。分析常见的源码检测方法是使用工具如GDA和JADX,它们会在某些关键字上显示出加壳迹象。分析脱壳则是源码针对加壳App,通过在APP运行过程中找到解密和加载原Dex的分析时机,如一代壳的源码加载点和ART虚拟机下的类加载与函数调用,利用InMemoryDexClassLoader和DexClassLoader进行操作。分析实验部分涉及对Android源码的源码修改,如FART_aosp8.0版本的ART,以及通过刷机和驱动安装等步骤实现脱壳。整个过程需要对Android系统和编译流程有深入理解,作者表示后续将补充原理细节。
在实际操作中,要谨慎选择Android版本和分支,hook远程监控源码确保刷机包的兼容性,并注意在修改ROM后进行刷入,以实现目标。整个脱壳实验耗时两个星期,作者希望在假期前完成,并表达了对新年的期许。
FartExt超进化之奇奇怪怪的新ROM工具MikRom
本文为看雪论坛优秀文章
在对ROM进行深入定制的探索中,作者分享了自己开发的两款工具:FartExt和MikRom。FartExt是一个自动脱壳机,基于FART主动调用的源码有什么危险思想,对特定的抽取壳进行优化处理。其核心功能是对FART进行简单优化,但由于当时实现功能并不完善,只短暂提供下载地址后便删除。现在,FartExt的开源代码已发布在GitHub上。
随着对ROM定制的深入思考,作者尝试将FartExt的原理应用到更广泛的场景,例如构建ROM级别的打桩工具,或通过应用读取配置文件实现网络流量拦截、云储存源码apiJNI函数调用追踪等功能。基于这些想法,MikRom应运而生。MikRom提供了一系列功能,包括内核修改、USB调试默认连接、脱壳(支持黑名单、白名单过滤、主动调用链优化)、ROM打桩、游戏平台源码程序frida持久化、反调试、Java函数trace、内置dobby注入、so和dex注入等。目前,MikRom的开源代码在GitHub上发布。
为了使MikRom的配置管理更方便,作者开发了一个界面化的工具MikManager,允许用户通过图形界面进行操作。MikManager将设置保存到文件中,MikRom在启动时读取并解析这些设置。MikManager界面简洁,如有需要,用户也可自行开发界面管理工具。
开发MikRom及其相关工具是一项耗时而复杂的工作,作者记录了整个开发历程,分享了在试错过程中找到的解决方案。在功能实现和界面设计上,作者表示仍存在不足,欢迎其他开发者指出错误或提供改进意见。在考虑法律和风险问题时,作者表示愿意进行修改。
在ROM编译版本的选择上,作者最初使用了aospr2源码进行修改编译。后有建议改进界面,于是参考hanbingle老师的Fart脱壳王使用的rom,选择了PixelExperience进行修改。编译时遇到了错误,需要对build文件进行调整。最终,作者使用了marlin版本进行编译,并在pixel XL上测试。
在配置管理优化方面,早期的FartExt配置文件存储在/data/local/tmp中,由应用启动过程解析。然而,随着配置管理的复杂性增加,作者引入了一个系统服务来管理配置文件,将文件落地到/data/system目录中,供所有应用访问。这解决了不同应用访问配置文件的权限问题。
了解更多详情,请阅读:FartExt超进化之奇奇怪怪的新ROM工具MikRom