最近工作中发现之前8.0的hook接口在最新的9.0华为手机上无效,但是在原生9.0上有效,说明是华为修改了部分代码,造成了接口不好使,所以想到查看手机 framework 层的源码。
具体操作步骤:
- 用 adb 或者 as 的
Device File Explorer
导出system/framework/arm64
下的vdex
文件。
2.利用 vdexExtractor 工具将 vdex 文件转换成标准的 dex 文件:
感谢 vdexExtractor 的作者:
https://github.com/anestisb/vdexExtractor
编译 vdexExtractor,批量导出 dex 文件
git clone https://github.com/anestisb/vdexExtractor
cd vdexExtractor
./make.sh
cd tools/deodex/
./run.sh -i vdex/ -o out-dex/
vdex为从手机导出vdex文件存放的目录,out-dex 为存放输出 dex 的目录。
image.png转换后的文件放在vdexExtractor_deodexed目录下,都是根据 vdex 按文件夹存放的。
- 导出的 dex 文件的 文件
magic number
为 039,借助 dex2jar 将它们转换为 jar 文件。
感谢 https://github.com/DexPatcher/dex2jar/releases 提供的 2.1 版本,能转化成功。
网友评论