Android脱壳工具整理

现在开源的脱壳工具比较多,今天我们来分享几款比较常见的脱壳工具,有刷入定制系统的脱壳机方式的,有Xpose模块hook关键函数的,也有Frida工具hook脱壳的,各有优缺点,小伙伴们可以自由搭配使用。

FART

这款脱壳工具是寒冰大佬写的,是通过刷入大佬定制的系统,进而在程序运行中动态脱壳。

具体介绍可见大佬的github:https://github.com/hanbinglengyue/FART
原理介绍:[原创]FART:ART环境下基于主动调用的自动化脱壳方案-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com

有些人可能觉得刷机麻烦,同时大佬也提供了Frida版的,可以直接使用frida hook脚本动态脱壳。



我们解压该文件后,将lib文件夹中的fart.sofart64.so拷贝到/data/app目录下,并使用 chmod 777 提权,接下来就可以正常使用frida hook脚本脱壳了

frida -U -f [包名] frida_fart_hook.js --no-pause

Youpk

一款基于ART的主动调用的脱壳机,针对Dex整体加固+各式各样的Dex抽取的脱壳机

具体介绍可见大佬的github:https://github.com/youlor/unpacker
原理介绍:[原创]Youpk: 又一款基于ART的主动调用的脱壳机-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com

这款工具的缺点就是只有pixel 1的刷机包,没有该手机就只能说拜拜了。

这款脱壳机在使用时还需要在我们的手机上扔一个配置文件,里面写的就是我们要脱壳的程序的包名cn.aaa.bbb。
adb shell "echo cn.aaa.bbb >> /data/local/tmp/unpacker.config"
脱下来的dex文件和修复要用的bin文件都在我们的本地包名下/data/data/cn.aaa.bbb/unpacker

FUPK3

这款是较上面两款早一点的脱壳机,目前只支持Nexus5 hammerhead手机,其他手机也可根据F8LEFT大佬github指示进行源码修改和编译。

具体介绍可见大佬的github:https://github.com/F8LEFT/FUPK3
原理介绍:[原创]Android通用脱壳机FUPK3-Android安全-看雪论坛-安全社区|安全招聘|bbs.pediy.com

这款是要配合手机端安装的FUpk3程序来脱壳,脱下来的dex放在/data/data/pkgname/.fupk3目录下

FDex2

这款是基于Xposed开发的,通过Hook ClassLoader的loadClass方法,反射调用getDex方法取得Dex(com.android.dex.Dex类对象),再将里面的dex写出。

具体可查看:https://bbs.pediy.com/thread-224105.htm

这款是脱比较早期一点的壳,类抽取的没办法,不过也可以脱下来看看方法名之类的,然后再配合frida hook。

FRIDA-DEXDump

这款基于frida的脱壳工具是葫芦娃大佬写的,看了一下最近更新尽然是6月份,那还是比较新鲜的,可以使用哦。
github地址:https://github.com/hluwa/FRIDA-DEXDump

我们可以直接用pip命令安装:
pip3 install frida-dexdump
使用:
frida-dexdump

or

git clone https://github.com/hluwa/FRIDA-DEXDump
cd FRIDA-DEXDump/frida-dexdump
python main.py -h

BlackDex

BlackDex是一个运行在Android手机上的脱壳工具,支持5.0~12,无需依赖任何环境任何手机都可以使用,包括模拟器。只需几秒,即可对已安装包括未安装的APK进行脱壳。

github:https://github.com/CodingGay/BlackDex

直接在我们的非越狱手机安装32位和64位的包即可,然后打开32位或者64位的选择我们要脱壳的app即可等待脱壳了。

优点很明显,就是不用root,不用root,不用root,自然也不用什么Xposed、面具、frida,更不用刷机,直接就能脱壳,强,很强。
缺点就是针对一些运行中加载的类和方法可能就脱不到了,因为这脱壳完全不会运行程序。

<think>好的,我现在需要帮助用户了解如何使用frida-dump进行Android应用程序脱壳。首先,用户提到了“frida-dump”,但根据提供的引用,正确的工具应该是frida-dexdump。可能用户记错了名称,我需要先确认这一点,并在回答中明确指出正确的工具名称,避免混淆。 接下来,用户的需求是寻找使用frida-dump的教程,但根据引用内容,正确的工具是frida-dexdump。因此,我需要整理引用中的信息,将其转化为一个步骤清晰的教程。引用中有多个来源,比如引用[2]、[3]、[5]都提到了frida-dexdump的安装和使用方法,我需要综合这些信息,确保步骤正确且完整。 首先,安装部分。引用[2]提到使用pip安装,并且指定了清华镜像源,这能加快安装速度。同时,引用[3]也提到安装frida-dexdump,但可能用户需要先安装frida-tools,因为frida-dexdump依赖Frida环境。这里需要检查是否需要先安装frida,或者frida-dexdump是否独立安装。根据引用[2],安装命令是“pip install frida-dexdump”,所以应该直接安装这个包即可。 然后,配置环境。引用[3]和[5]提到了在Android设备上运行frida-server的步骤,比如adb连接、推送frida-server到设备、赋予权限并启动。这里需要详细说明,因为如果frida-server没有正确运行,frida-dexdump可能无法正常工作。需要确保用户完成这些步骤,特别是处理可能的连接问题,比如adb重启。 接下来是脱壳的具体命令。引用[2]给出了几种不同的命令格式,比如使用包名、应用名称或进程ID。需要解释这些选项的区别,并给出示例,比如使用“-f”参数指定包名,或者“-n”指定应用名称。同时,引用[3]提到使用“-FU”参数导出前台应用,这也是一个有用的命令,需要包括在内。 可能遇到的问题:用户可能在安装或运行过程中遇到问题,比如frida版本不兼容,或者adb连接失败。引用[3]提到如果adb连接不成功,需要重启adb服务,这应该作为常见问题解决方法包含在教程中。另外,确保设备已root或者有足够的权限运行frida-server,这也是关键点。 另外,引用[4]虽然关于iOS的脱壳,但用户的问题是针对Android的,所以可以忽略这部分内容,但需要确保回答不混淆两个平台的不同工具。 最后,生成相关问题部分,需要根据教程内容提出相关问题,比如性能优化、不同参数的作用、常见错误处理等,帮助用户进一步学习。 总结回答结构应该是:环境准备(安装工具、配置设备)、脱壳步骤(具体命令)、示例说明、常见问题,最后相关问题。需要按照逻辑顺序,逐步引导用户完成整个过程,同时引用正确的来源,比如引用[2]、[3]、[5]中的具体步骤,确保信息的准确性。</think>### 如何使用 frida-dexdump 实现 Android 应用程序脱壳教程 #### **一、环境准备** 1. **安装 frida-dexdump** 使用 Python 包管理工具安装,推荐清华镜像加速: ```bash pip install frida-dexdump -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 安装完成后,工具默认位于 Python 的 `Scripts` 目录下(如 `C:\Python37\Scripts`)[^2]。 2. **配置 Android 设备** - 确保设备已开启 USB 调试模式并连接电脑。 - 推送 `frida-server` 到设备(需选择与设备架构匹配的版本): ```bash adb push <本地frida-server路径> /data/local/tmp ``` - 启动 `frida-server`: ```bash adb shell su cd /data/local/tmp chmod 777 frida-server ./frida-server & ``` 若连接失败,尝试重启 ADB:`adb kill-server && adb start-server`[^3][^5]。 --- #### **二、脱壳步骤** 1. **获取目标应用信息** - 包名:通过 `adb shell pm list packages` 查找,或使用第三方工具(如 `包名查看器`)。 - 进程 ID:运行应用后,通过 `adb shell ps | grep <包名>` 查询。 2. **执行脱壳命令** - **通过包名脱壳**(需应用正在运行): ```bash frida-dexdump -U -f <包名> ``` - **通过应用名称脱壳**(如“保利票务”): ```bash frida-dexdump -U -n <应用名> ``` - **导出前台应用**(快速脱壳当前界面应用): ```bash frida-dexdump -FU ``` 脱壳结果默认保存在当前目录的 `dex` 文件夹中[^2]。 --- #### **三、示例演示** 以包名 `com.example.app` 为例: 1. 启动应用并保持前台运行。 2. 执行命令: ```bash frida-dexdump -U -f com.example.app ``` 3. 查看生成的 `.dex` 文件,使用反编译工具(如 JADX)分析。 --- #### **四、常见问题** 1. **frida-server 无法启动** - 检查设备是否已 Root 或授予 `su` 权限。 - 确认 `frida-server` 版本与本地 Frida 版本一致。 2. **脱壳文件为空** - 确保应用已启动且未被加固(部分加固需绕过检测)。 - 尝试附加参数 `-d` 显示调试信息: ```bash frida-dexdump -U -f <包名> -d ``` --- §§ 相关问题 §§ 1. 如何解决 frida-dexdump 的版本兼容性问题? 2. 脱壳后的 `.dex` 文件如何反编译为 Java 代码? 3. 针对加固应用(如梆梆加固),如何增强脱壳效果? [^1]: 安卓逆向之使用frida-dexdump进行脱壳 [^2]: frida-dexdump 安装与命令详解 : Android 脱壳环境配置与操作 [^5]: frida-server 部署与权限配置
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

移动安全星球

您的鼓励将是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值