12345下一页
查看: 44|回复: 43

[相关教程] 安卓脱壳实战:用FRIDA-DEXDump从内存dump原始DEX

[复制链接]

96

主题

5

回帖

951

积分

UID
2
贡献
9 点
钻石
7 个
C币
993 个
发表于 2026-1-7 03:08:45 | 显示全部楼层 |阅读模式
逆向遇到加壳的 App 怎么办?这篇讲安卓脱壳。

一、什么是加壳
壳是一层保护代码。App 编译好之后,用工具把 DEX 文件加密,运行时再解密到内存。你用 apktool 反编译加壳的 APK,看到的不是原始代码,而是壳的代码。要看真正的逻辑,必须把壳剥掉。

二、常见壳类型

  • 梆梆加固:企业级,反调试强,脱壳难度高
  • 爱加密:跟梆梆类似,反调试做得比较全
  • 360 加固:免费版常见,脱壳相对容易
  • 腾讯乐固:腾讯系 App 常用,中等难度
  • DexProtector:国外商用壳,代码混淆 + DEX 加密


三、脱壳思路
壳在运行时会把 DEX 解密到内存。脱壳的核心思路:在 App 运行时把内存里的 DEX dump 出来。

四、工具推荐


  • FRIDA-DEXDump:用 Frida 在运行时扫描内存,找到 DEX 结构并导出。最常用
  • BlackDex:独立工具,不需要 root,通过自定义 ClassLoader 触发加载再 dump
  • DexHunter:修改 Android 系统源码,在系统层 dump。适合深度分析
  • Fart:基于 Xposed 的主动脱壳工具,利用 ART 运行时的机制导出 DEX


五、实操:用 FRIDA-DEXDump 脱壳

步骤:
  1. # 1. 手机上启动 frida-server
  2. adb shell "su -c '/data/local/tmp/frida-server &'"
  3. # 2. 安装 FRIDA-DEXDump
  4. pip3 install frida-dexdump
  5. # 3. 启动目标 App(先运行起来让壳解密)
  6. adb shell am start -n com.target.app/.MainActivity
  7. # 4. 运行脱壳
  8. frida-dexdump -U -f com.target.app
  9. # 5. 等待完成,DEX 文件会输出到当前目录的 com.target.app/ 文件夹
复制代码

六、注意事项

  • 脱壳前先确认壳的类型。用 ApkScan 或者直接看 lib 目录下的 so 文件名判断
  • 有些壳有反调试,脱壳前需要先绕过。常见方法:hook ptrace 返回 0、hook Debug.isDebuggerConnected 返回 false
  • 脱出来的 DEX 可能有多个,取最大的那个(主 DEX)。小的可能是壳自己的
  • 脱出来的 DEX 用 jadx 打开看代码,如果能看到原始类名和方法,说明脱成功了
  • 有些壳用了 VMP(虚拟机保护),关键方法被翻译成虚拟指令,脱出来的 DEX 里这些方法体是空的。VMP 目前没有通用脱壳方案,只能动态分析


七、脱壳之后
拿到原始 DEX 后用 jadx 反编译看 Java 代码,或者用 IDA 分析 native 层 so 库。脱壳是逆向的第一步——拿到明文代码才能开始分析。



脱壳的本质:壳必须在运行时解密才能执行,所以在运行时一定能拿到明文。区别只是怎么拿到、拿得全不全。FRIDA-DEXDump 目前是最通用的方案,建议先试它。
温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
回复

使用道具 举报

0

主题

387

回帖

50

积分

UID
767379
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-8 13:47:46 | 显示全部楼层
这篇质量很高,建议加精。
回复

使用道具 举报

0

主题

382

回帖

53

积分

UID
145352
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-8 20:11:36 | 显示全部楼层
这个思路让我想到另一个场景,回头试试能不能套用。
回复

使用道具 举报

0

主题

383

回帖

0

积分

UID
354622
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-9 08:59:17 | 显示全部楼层
这个流程我在真机上验证过,确实可行,注意备份就行。
回复

使用道具 举报

0

主题

391

回帖

42

积分

UID
928478
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-10 04:10:49 | 显示全部楼层
同意楼主的判断,现在加固手段越来越多,纯手工成本太高了。
回复

使用道具 举报

0

主题

364

回帖

0

积分

UID
473702
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-11 05:46:11 | 显示全部楼层
照着试了一下,第一遍没成功,发现是权限问题,建议楼主补充个提示。
回复

使用道具 举报

0

主题

396

回帖

0

积分

UID
453985
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-12 13:45:24 | 显示全部楼层
实战出来的经验和文档里写的完全是两码事,楼主这个很真实。
回复

使用道具 举报

0

主题

377

回帖

54

积分

UID
655918
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-14 04:08:28 | 显示全部楼层
同求后续,想知道绕过之后怎么稳定保持,重签名这块一直搞不定。
回复

使用道具 举报

0

主题

383

回帖

0

积分

UID
836735
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-16 00:55:23 | 显示全部楼层
楼主有没有遇到过反调试?我这边一挂调试器就直接退出。
回复

使用道具 举报

0

主题

378

回帖

40

积分

UID
688943
贡献
0 点
钻石
0 个
C币
0 个
发表于 2026-1-18 04:06:08 | 显示全部楼层
试了下你说的第二种方法,成功率更高,推荐。
回复

使用道具 举报

温馨提示:
1、在论坛里发表的文章仅代表作者本人的观点,与本网站立场无关。
2、论坛的所有内容都不保证其准确性,有效性,时间性。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
3、当政府机关依照法定程序要求披露信息时,论坛均得免责。
4、若因线路及非本站所能控制范围的故障导致暂停服务期间造成的一切不便与损失,论坛不负任何责任。
5、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
6、网络世界也请遵守我国的法律法规!一旦发现违法行为,将立即封存相关信息并报警处理!
12345下一页
您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

QQ客服返回顶部