应用安全 --- apk加固 之 自动化脱壳机
这是一个关于Android应用加固(俗称“加壳”)后,用于进行自动化脱壳的工具列表。需要强调的是,这些工具主要用于安全研究、渗透测试(在获得授权的情况下)、恶意软件分析或评估自身应用的安全性。严禁将其用于非法用途。
“脱壳”是一个猫鼠游戏,没有一种工具能应对所有的加固方案。脱壳工具通常分为两类:基于特定环境的通用脱壳工具 和 需要针对特定壳编写脚本的半自动化工具。
一、通用自动化脱壳工具/环境
这类工具通常提供一个现成的环境,可以自动处理一些常见的加固方案。
-
BlackDex
-
简介: 运行在Android手机上的脱壳工具,无需Root。它利用系统漏洞(如内存漫游)直接从内存中提取DEX文件。
-
特点: 方便快捷,对部分主流壳有效。但严重依赖系统版本,Android高版本系统修复漏洞后可能失效。
-
项目地址: (通常在GitHub等平台搜索)
-
-
FDex2
-
简介: 一款经典的Xposed模块。通过Hook Android系统的
DexClassLoader
等关键加载函数,在DEX文件被加载到内存时将其dump下来。 -
特点: 需要Xposed环境且需要Root权限。在早期非常有效,但现在多数加固方案都会检测并绕过Xposed挂钩。
-
-
DumpDex
-
简介: 与FDex2类似,也是基于Xposed的脱壳工具,通过Hook
dvmDexFileOpenPartial
等底层函数来实现脱壳。 -
特点: 同样是经典工具,但面临与FDex2相同的困境,易被现代壳检测。
-
-
Youpk (基于FART的改进版)
-
简介: 一种非常强大的“主动调用”脱壳方案。它修改了Android ART虚拟机,不仅可以dump出内存中的DEX,还能通过主动调用类中的所有方法,来触发加固壳的解密逻辑,从而 dump 出所有被加密的方法代码。
-
特点: 脱壳效果非常彻底,能应对函数级的加密。但使用门槛极高,需要自行编译刷入修改后的Android系统。
-
项目地址: GitHub上可找到相关项目。
-
-
FART
-
简介: Youpk等工具的前身,由专家寒冰提出并实现。同样是修改ART虚拟机,是主动调用脱壳法的开创性作品。
-
特点: 业界标杆,但需要自行编译系统。
-
-
各种改版虚拟机/ROM
-
简介: 很多安全研究人员会制作集成了一些脱壳功能的Android ROM,例如基于Android 7.1或9.0的版本。用户只需刷入这个手机系统,就具备了脱壳能力。
-
特点: 省去了自己编译的麻烦,但可能需要使用特定型号的手机。
-
二、基于动态调试和Hook的框架(需编写脚本)
这类是“瑞士军刀”,本身不是专门的脱壳工具,但可以通过编写脚本实现高度定制化的脱壳,是当前主流的高级脱壳方式。
-
Frida
-
简介: 一个强大的动态代码插桩工具。通过注入JavaScript脚本来Hook任何函数。
-
脱壳原理: 编写JS脚本,Hook诸如
java.lang.ClassLoader
,DexFile
,dvmDexFileOpenPartial
等关键函数,在加固壳解密DEX并加载进内存的瞬间,将内存数据dump下来。 -
特点: 跨平台、灵活强大。是现代移动安全研究和逆向工程的必备工具。需要一定的编程能力。
-
-
Xposed
-
简介: 安卓平台著名的模块框架。如上所述,FDex2和DumpDex都是其模块。
-
脱壳原理: 编写Xposed模块(Java代码),Hook应用层的Java函数来实现脱壳。
-
特点: 比Frida更依赖Java层,易被检测。
-
-
Unidbg
-
简介: 一个非常有特色的模拟执行框架,它可以在PC上模拟运行Android的so原生库,而无需真正的Android手机或模拟器。
-
脱壳原理: 对于某些将核心解密逻辑放在so库里的加固方案,可以将其so库放到Unidbg中运行,并模拟调用它的解密函数,从而直接获取解密后的DEX数据。
-
特点: 逆向分析so的神器,用于脱壳非常高效,但学习曲线陡峭。
-
三、针对特定壳的脱壳脚本/工具
很多安全研究人员在成功分析某一款加固方案(如360、梆梆、爱加密等)后,会发布针对该特定壳的脱壳脚本(通常用Frida或Xposed实现)。
-
例如:
frida_dump
、某盾脱壳脚本
、某加密脱壳机
等。 -
这些工具在GitHub、看雪论坛等安全社区可以找到。但它们时效性非常强,一旦加固方案更新,老版本的脚本可能立即失效。
总结表格
工具名称 | 类型 | 所需环境 | 特点与现状 |
---|---|---|---|
BlackDex | 通用自动化工具 | 无Root安卓手机 | 方便但依赖系统漏洞,高版本可能失效 |
FDex2/DumpDex | 通用自动化工具 | Xposed + Root | 经典,但易被现代壳检测,逐渐失效 |
Youpk/FART | 通用自动化工具 | 定制化安卓系统 | 效果最彻底,门槛最高,需要刷机 |
Frida | 动态Hook框架 | Root/非Root均可 | 当前主流,灵活强大,需编写脚本,是能力核心 |
Xposed | 动态Hook框架 | Xposed + Root | 经典Java层Hook框架,易检测 |
Unidbg | 模拟执行框架 | PC Python环境 | 分析so核心逻辑的神器,用于脱壳很高效但难学 |
特定脚本 | 半自动化工具 | 依赖脚本运行环境 | 针对性强,时效性短,需要持续更新 |
最重要的提示:
没有任何一个工具是万能的。 高强度的商业加固方案一直在更新迭代,检测和对抗这些脱壳手段。真正的脱壳往往需要深入的分析和多种工具的组合使用。自动化工具可能很快失效,而基于Frida的手动分析和脚本编写能力才是安全研究人员手中最核心、最持久的能力。