前言

在进行Android逆向开发时,反编译工具是必备利器。

在将vdex解析为jar包时需要用到vdexExtractor。 vdexExtractor 工具将 vdex 文件转换成标准的 dex 文件,尽管网上有各种关于vdexExtractor 工具的使用教程,但是在自己动手时还是会遇到各种坑,总结下来,希望能对遇到同样问题的同学们有所帮助。

具体操作步骤:

步骤1:准备vdex文件

用 adb 或者 as 的 Device File Explorer导出Android手机 system/framework/下的 vdex 文件

步骤2:使用vdexExtractor 工具将 vdex 文件转换成标准的 dex

2.1 linux环境下载vdexExtractor 工具源码

(感谢 vdexExtractor 的作者anestisb)

2.2 编译vdexExtractor

cd vdexExtractor

./make.sh

如果报如下错误,需要安装make

4de297a3f6b1deddc4d13f8e35191e49.png

解决办法:

sudo apt install make

sudo apt install make-guile

./make.sh gcc

如果出现如下错误,需要安装gcc

8afa209f24cc274f1b316d6ddc509413.png

解决办法:

可以用这个命令安装, 这个就是GCC的开发环境, 然后再执行./make.sh gcc

sudo apt-get install build-essential

编译完成后,会在vdexExtractor/bin/目录下生成 vdexExtractor library文件以及vdexExtractor/tools 文件夹。

进入到vdexExtractor/tools/deodex 目录下,将vdex 文件拷贝到vdex文件夹下,执行如下命令:

$ ./run.sh -i vdex/ -o out-dex/

将生成out-dex 文件夹,此文件夹下为vdex 文件转化为标准dex 文件的结果。

至此 vdex -> dex 执行完毕。

步骤3 : dex转化为jar

使用d2j-dex2jar.bat 工具将dex 转化为 jar,至此vdex反编译完成。