脱壳主要解决什么问题:1 针对在渗透测试中,如果遇到数据包被加密,证书被加密,则需要分析源代码,分析加密算法等
2 在红蓝对抗中,搜索一些秘钥信息以及或者遗漏的资产信息
0x01 下载某apk发现有壳
通过上图可以发现,com包下代码量比较少,有ApplicationWrapper,一般是有防护的表现
0x02 脱壳准备
注意:这种方法虽然比较好用,但是并不代表所有的壳都可以拖
需要一部root手机,frida环境,python3环境
(1)安装apk
环境最好是真机,谷歌亲儿子,自己刷个系统然后刷root
adb install xxxx.apk
安装apk成功
(2)起frida
adb shell
cd /data/local/tmp/
./frida
frida服务起来后,在PC端执行查看是否连接
frida-ps -U
说明frida连接成功,获取手机进程成功
(3) 下载脱壳脚本,并运行
frida脚本地址:
https://github.com/hluwa/FRIDA-DEXDump
下载后运行,在手机端点击启动app,app启动后,pc端运行python3 main.py
选择进程(双进程一般是防止ida,gdb等程序挂载),这里选择12597,直接输入1,一般选择高进程,猜测原因是壳的保护进程优先启动,被保护的进程后启动
找到保存路径
用jadx打开,几个看看,发现源代码暴露了出来: