参考资料如下:
Android应用破解全解析:Frida-Dexdump脱壳工具实战指南,零基础也能玩转APK逆向!
https://mp.weixin.qq.com/s/-d1-JREI4mvKHXLq7cCA6g
https://mp.weixin.qq.com/s/6jVmeS5MtIn0srtPwAQxIg
1.认识常见壳
脱壳的目的就是帮我们撕开这层包装,暴露出原始的代码(例如dex文件),方便我们反编译、分析或学习。
1.1.使用工具进行查壳

1.2.解压APP查看lib目录下文件判断是什么壳


1.3.一些常见脱壳工具

2.frida-dexdump
|
|

将脱出来的壳使用JADX进行打开,一个细节,使用JADX进行打开时,一定不要勾选verify dex file checksum before load,否则你是查不到具体代码的


3.blackdex
https://github.com/CodingGay/BlackDex
使用方法很简单,下载编译好的文件后,打开APP,选择要脱壳的APP,直接运行即可


但是这个拖出来的壳不太行,APP的核心代码都没有

4.frida-unpack
https://github.com/dstmath/frida-unpack/tree/master
原理:利用frida hook libart.so中的OpenMemory方法,拿到内存中dex的地址,计算出dex文件的大小,从内存中将dex导出。 ps:查看OpenMemory的导出名称,可以将手机中的libart.so通过adb pull命令导出到电脑,然后利用: **nm libart.so |grep OpenMemory**命令来查看到出名。 其中android 10为**/apex/com.android.runtime/lib/libdexfile.so**方法为**OpenCommon**。
|
|
我这边不知道为什么运行环境有问题

|
|

但是到实际目录下去看也未发现存在dex文件

其它一些frida系列脱壳脚本:https://github.com/GuoQiang1993/Frida-Apk-Unpack
https://github.com/LLeavesG/FART-Fix
5.反射大师脱壳
https://mp.weixin.qq.com/s/6jVmeS5MtIn0srtPwAQxIg
对安卓版本有要求

6.使用apksheller加固
https://github.com/yongyecc/apksheller
|
|