基于Frida的脱壳工具
参考dstmath的frida-unpack https://github.com/dstmath/frida-unpack
xiaokanghub的Frida-Android-unpack https://github.com/xiaokanghub/Frida-Android-unpack
对脚本功能做了优化,适配了更多平台,加强了对于各安卓版本的通用性
目前测试过Android4.4(貌似frida对Android4.4兼容并不好) Android5.1 Android6.0 Android7.1
一、frida环境搭建
前面文档有写过
二、原理说明
利用frida hook libart.so中的OpenMemory或OpenCommon(Android N以后)方法,拿到内存中dex的地址,计算出dex文件的大小,从内存中将dex导出。
三、脚本用法
在手机上启动frida server端 执行 frida -U -f com.xxx.xxx -l dumpDex.js --no-pause 脱壳后的dex保存在/data/data/应用包名/目录下
四、适用环境
普通加固可以脱壳,对于类抽取等加固脱出的只是个空壳,需要做指令Dump以及Patch到脱出的Dex文件中
五、导出DEX文件
从
dex保存在/data/data/应用包名/目录下
导出dex文件
复制C:\Users\Administrator>adb shell
shell@shamu:/ $ su
root@shamu:/ # cd /data/data/
在data/data/目录下 # 包名
root@shamu:/ # cd /data/data/com.wanda.kuaiyihua/
在data/data/目录下 # 包名
root@shamu:/data/data/com.wanda.kuaiyihua # ls
# 创建文件wanda
root@shamu:/data/data/com.wanda.kuaiyihua # mkdir /sdcard/Download/wanda
# 移动dex 到 wanda 目录下
root@shamu:/data/data/com.wanda.kuaiyihua # mv *.dex /sdcard/Download/wanda
# 从wada文件中导出dex 到 本地目录D:\wada 下
C:\Users\Administrator>adb pull /sdcard/Download/wanda D:\wada
adb查看app包名
复制adb shell dumpsys window w |findstr \/ |findstr name=
六、参考链接
https://www.frida.re/docs/home/
https://github.com/dstmath/frida-unpack
https://github.com/xiaokanghub/Frida-Android-unpack
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~