安卓脱壳指南
对安卓apk脱壳的目的是什么?
得到dex文件,dex文件里有smali代码,可以反编译成java,用于对apk进行进一步的分析
例如对代码进行分析后可以编写xposed模块来动态修改目标APP
apk壳的分类
1.内存加载
目标app先读取dex到内存,然后通过内存加载dex,防止直接对apk解包就能获得dex文件
2.指令抽取
目标app的类或方法的代码体被抽空,在类被加载或者具体方法被调用时才回填,这种方式直接脱壳只能得到包含类名和方法名的空代码dex文件,防止dex在加载阶段被脱壳
3.虚拟机保护
目标通过自定义虚拟机来执行指令,原来的smali代码被替换成了适用于自定义虚拟机的指令,这种方式直接脱壳会发现方法被native化
脱壳工具
1.基于xposed的工具
FunDex
2.基于frida的工具
frida-dexdump
3.基于虚拟机的工具
BlackDex