34.安卓逆向-壳-frida-Dexdump脱壳

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:图灵Python学院

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:33.安卓逆向-壳-查壳

上一个内容里写了如何查询app文件是否加壳,本次来写怎样去砸壳(或者说是脱壳)

有一个工具叫做frida-Dexdump,常规的壳它没有问题,它通过frida的搜索内容,通过匹配dex文件的特征,例如dex文件的文件头中的magic---dex.035这个特征

脱壳原理

一个app被加固了,然后如果想让app正常运行,它肯定要把app原本的代码放到内存里,也就是说app启动的时候会先运行脱壳的代码,然后把dex源码文件加载到内存里,也就是说内存里会有app的源码,如果原本的代码加完壳之后找不到了那么app也没法正常运行,然后app加固只是把dex源码文件放到别的地方了,并不是没有了,所以frida-Dexdump就是利用这种方式来对app进行脱壳

frida-Dexdump官网地址:https://github.com/hluwa/FRIDA-DEXDump

下载有两种方式,第一种,把下图红框的文件全部下载下来

第二种使用pip命令下载

第一种方式下载完,如下图红框requirements.txt文件里的是它需要的东西,比如没有frida-tools就要手动安装一下,没有安装click也要手动安装一下,总之要确保requirements.txt文件里的东西都已经安装了,否侧会没法使用

pip命令进行安装,如下图

然后把手机上的Frida运行起来,然后来到下载frida-dexdump的目录里,如下图

然后在此目录打开cmd

然后输入 python .\frida_dexdump\ -FU 表示把当前手机里显示的app进行破解,如下图

它会把源码文件放到如下图红框位置,也就是在frida-dexdump安装位置根据app的包名创建一个文件夹,然后把源码文件放进去

如下图源码文件,然后这些文件可以直接放到 jadx-gui 里进行查看,但要注意它非常占用内存,如果电脑内存不够大,可能会因为内存满了变卡或死机,所以肯定有一种不用担心内存满的方式

通过搜索先找到app的入口方法,有一个GDA4的工具

GDA4下载地址:http://www.gda.wiki:9090/

打开GDA4之后,把apk文件拖到GDA4里,然后看BaseInfo,就能找到入口了如下图2位置的红框就是入口

找到入口之后打开Windows的shell,如下图红框的东西

然后输入 findstr /s /i /m "GDA4里找到的入口" *,如下图红框它就可以找到入口相关的dex源码文件,把这集个文件分别拖到jadx-gui里,findstr 指令只能在 Windows PowerShell里使用(cmd可能没法用)

如下图通过这种一点一点的找源码文件的方式看源码


img

<think>好的,我现在要介绍Frida-dexdump这个脱壳脚本。首先,得了解用户可能对Android应用逆向脱壳不太熟悉,所以需要从基础讲起。然后,分步骤解释Frida-dexdump是什么,它的原理、使用步骤、优缺点,以及实际应用中的注意事项。 用户可能需要知道为什么需要脱壳,比如分析恶意软件或进行安全审计。要提到常见的加固服务如梆梆、360加固,以及Frida-dexdump如何应对这些保护措施。然后,详细说明Frida-dexdump的工作原理,基于Frida的动态插桩技术,在内存中搜索DEX文件并导出。这部分要确保技术细节准确,但不过于晦涩。 接着是使用步骤,包括安装Fridafrida-dexdump,设备环境准备,运行命令,以及可能需要的参数调整。要提醒用户可能需要root或模拟器环境,以及如何确认脱壳成功。还要提到常见问题,比如多个DEX文件的情况,或者内存中DEX损坏的情况,如何处理。 优缺点方面,强调动态脱壳的有效性,但也要指出依赖运行环境和可能遗漏的情况。注意事项部分要提到法律和道德问题,确保用户明白合法使用的重要性。最后,总结Frida-dexdump在安全研究中的作用,并推荐进一步的学习资源。 需要检查是否有遗漏的关键点,比如是否需要配置Python环境,或者Frida版本兼容性问题。还要确保命令示例正确,比如安装命令是pip install frida-dexdump,运行命令是frida-dexdump -U -f com.example.app。可能还需要提到其他工具对比,如DumpDex或Xposed模块,但Frida-dexdump的优势在于灵活性和动态分析能力。 最后,确保语言通俗易懂,结构清晰,分点说明,便于用户跟随。避免使用过多专业术语,必要时进行解释。比如解释DEX文件是Android应用的字节码,脱壳就是从内存中提取被加固保护隐藏的代码。这样用户即使没有相关背景也能理解基本概念。</think>Frida-dexdump 是一款基于动态注入框架 **Frida** 开发的 Android 应用脱壳工具,主要用于从内存中提取被加固保护的 DEX 文件。以下是逐步解析: --- ### 一、脱壳原理 1. **动态注入** 通过 Frida 将脚本注入到目标 App 进程,实时监控内存中的 DEX 加载行为。 2. **内存搜索** 扫描进程内存,识别符合 DEX 文件特征(如 `dex\n035` 文件头)的数据块。 3. **修复与导出** 提取原始 DEX 字节流,修复内存偏移等问题,最终保存为可分析的 `.dex` 文件。 --- ### 二、使用步骤 1. **环境准备** - 安装 Python 和 Frida: ```bash pip install frida-tools frida-dexdump ``` - 手机/模拟器需开启 USB 调试,并运行 Frida Server。 2. **执行脱壳** - 针对正在运行的 App: ```bash frida-dexdump -U -f com.example.app ``` - `-U`:连接 USB 设备 - `-f`:指定目标包名 3. **获取结果** - 脱壳后的 DEX 文件会保存在当前目录的 `dump` 子文件夹中。 --- ### 三、核心优势 1. **对抗加固** 可绕过主流商业加固方案(如梆梆、腾讯乐固)的内存保护机制。 2. **动态脱壳** 直接提取运行时内存中的 DEX,避免静态脱壳的复杂性。 3. **灵活定制** 支持自定义搜索策略(如调整内存范围、过滤无效 DEX)。 --- ### 四、局限性 1. **依赖运行环境** - 需保持 App 处于运行状态,部分加固可能会检测 Frida 并闪退。 2. **多DEX处理** 若 App 包含多个 DEX 文件,需手动合并分析。 3. **内存残留** 若 DEX 已被卸载或覆盖,可能导致提取失败。 --- ### 五、实际应用技巧 1. **绕过反调试** 配合 Frida 脚本禁用加固的反调试检测。 2. **多进程处理** 使用 `--spawn` 参数在应用启动时注入,避免错过早期加载的 DEX。 3. **日志分析** 添加 `-v` 参数查看详细日志,定位脱壳失败原因。 --- ### 六、注意事项 - **法律合规性**:仅用于安全研究或授权测试,避免侵犯软件版权。 - **设备兼容性**:部分 Android 10+ 机型需关闭 SELinux 或使用模拟器。 - **版本更新**:定期更新 `frida-dexdump` 以适配新版加固技术。 --- 如需进一步分析脱壳后的 DEX 文件,可结合 **Jadx** 或 **Ghidra** 进行反编译。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值