基于frida的几种安卓脱壳工具

frida工具在Android脱壳的应用

在上篇文章中,提供了frida安装教程,本篇内容是利用frida对安卓应用进行脱壳,提供了几种方法。
学习笔记,非原创,下面的学习参考文章在每一种方法会单独列出相应作者的地址,具体原理在在作者的帖子中已经详细描述过了,在这里不做多的叙述。

壳的分类

壳的种类非常多,可以简单的分为以下三类:
一代整体型:采用Dex整体加密,动态加载运行的机制(免费类的壳);
二代函数抽取型:将方法单独抽取出来,加密保存,解密执行(某加密);
三代VMP、Dex2C:独立虚拟机解释执行。

frida用于脱壳的几种方法

1. 文件头搜索dex

作者的GitHub地址:https://github.com/r0ysue/frida_dump
下载源码到本地,README.md,介绍了使用方法
android shell 开启frida服务端,执行:

frida -U --no-pause -f com.XXXX.XXXXX -l dump_dex.js

执行结果:
基于frida的几种安卓脱壳工具_第1张图片
会搜索dex文件并dump下来,保存在data/data/packageName/files 目录下:
基于frida的几种安卓脱壳工具_第2张图片

2. 暴力搜索内存DEXdump

作者的GitHub地址:https://github.com/hluwa/FRIDA-DEXDump
需要在python环境下运行main.py,同时启动要脱壳的APP
基于frida的几种安卓脱壳工具_第3张图片
最后脱壳后的dex文件保存在PC端main.py同一目录下,以包名为文件名:
基于frida的几种安卓脱壳工具_第4张图片

3. Frida-Apk-Unpack 脱壳工具

作者的GitHub地址:https://github.com/GuoQiang1993/Frida-Apk-Unpack
同样需要启动frida,执行:

frida -U -f com.XXXX.XXXXX -l dexDump.js --no-pause

基于frida的几种安卓脱壳工具_第5张图片
将dex文件并dump下来,保存在data/data/packageName 目录下

后记:
测试以上方法对一代壳整体型的脱壳效果很好,相对于二代壳函数抽取型壳效果不明显,脱后的dex文件中函数体为空。
对于函数抽取型的壳,fart可以解决,hanbinglengyue大佬也是写出了frida-fart,frida版的fart,安卓版本目前只适配于Android 8.0,后续会持续学习到fart和frida-fart在安卓脱壳中的使用。

你可能感兴趣的:(Android,android)