/Udex

dump dex for android 14

Primary LanguageC

简要说明

自己实现的安卓dex dump工具,可以处理普通一代和二代壳,以及简单的二代抽取壳,无法处理 vm 化的三代壳,以及变形的二代抽取壳。

本工具的优点,不用修改 rom ,直接编译此项目后使用自动化脚本即可以脱壳。

另外因为工具还没有公开扩散,目前检测下来几乎没有壳可以检测出本工具。

本工具仅为自己使用。

参考了以下项目:

更新说明

2024/06/07

在自己的 RedNote7 手机上测试成功,首次提交。

2024/06/13

使用静态编译dobby代替以前的动态链接

2024/06/20

添加 frida-gumjs 来方便运行 js 代码

2024/09/30

更新到 Matrixx 系统。

最近才发现 EvolutionX 系统在 SourceForge 的仓库已经删除,并且 EvolutionX 系统宣布不再支持 RedNote7 ,因此就有了更换一个安卓系统的想法。

经过测试发现 Matrixx 系统还不错,基于 crDroid 系统,自带 KernelSU ,目前最新的安卓版本为 Android 14.0.0 r62。

Matrixx 官方主页:https://github.com/ProjectMatrixx

以前的 EvolutionX 系统也最终找到一处下载地址:https://sourceforge.net/projects/evolution-x/files/previously_supported_devices/lavender/14/

经过测试发现本程序无法直接在 Matrixx 系统下使用,经过调试发现原来是 EvolutionX 系统(android 14.0.0 r25)版本使用的一个小技巧来获取 ArtMethod 类的 GetCodeItem 的方法已经在 Matrixx 系统下失效了。

本来以为要大费周章才能找到新的解决方案,哪知道踏破铁鞋无觅处,得来全不费工夫,Matrixx 系统(android 14.0.0 r62)中导出了 art::ArtMethod::GetCodeItem 符号

这样就很容易修正这个问题了。经过测试在 EvolutionX 和 Matrixx 系统下,都能成功 dump dex 了。

使用环境:

1、手机安装 Matrixx 的 android 14 系统,对应的安卓版本为 android-14.0.0r62。(因为 Matrixx 系统自带了 KernelSU ,因此不需要再单独安装 KernelSU)

2、在 KernelSU 中安装 ZygiskNext (https://github.com/Dr-TSNG/ZygiskNext/tree/master) 以及自己修改过的 ZygiskFrida (https://github.com/rankalpha/ZygiskFrida) ,可选择安装 Shamiko。

使用方法一:

1、修改 python 目录下的 futils.py 文件中的 package_name 为你需要 dump 的包名,并保存

2、在电脑上运行 python 目录下的 dump_dex.py 文件即可自动运行 app 并且提取结果保存到 python/output 目录下

使用方法二:

1、修改 python 目录下的 futils.py 文件中的 package_name 为你需要 dump 的包名,并保存

2、在电脑上运行 python 目录下的 create_work_env.py 程序,程序会自动复制工作需要的文件到手机上

3、在手机上运行 app , 如果有监控 logcat 的程序可以查看 tag 为 UDEX 或者 DEXHOOK 的信息是否出现,如果有,则通常程序在后台开始工作

4、在电脑上运行 python 目录下的 get_dump_result.py 程序,程序会把结果提取到 python/output 目录下