Android反编译之vdex转dex查看源码

广告也精彩

前言

最近获取到客户Apk(客户版本Android 9)后使用工具没法看到源代码,system/priv-app/Media目录结构如下:

C:.
└─oat
    └─arm64
          ├─Media.odex
          └─Media.vdex 
└─Media.apk

Media.apk中只有相关的资源文件,源代码都在Media.vdex和Media.odex中,如果需要看源码,需要反编译

下面简单介绍一下反编译Media.vdex的过程。

好记性不如烂笔头

正文

涉及系统环境和工具如下

系统: Ubuntu  Windows
工具: vdexExtractorcompact_dex_converter 以及jadx-gui-1.1.0-no-jre.exe
  1. vdexExtractor和compact_dex_converter 需要Ubuntu
  2. jadx-gui-1.1.0-no-jre.exe 需要Windows

环境配置

vdexExtractor和compact_dex_converter的下载地址:

点击我下载 --> vdex2dex_linux64.tar 提取码:zcgr

或者本站备份

点击我下载 --> vdex2dex_linux64.tar 提取码:l9ls

下载后就上传到Ubuntu,层级如下:

.
├── compact_dex_converter
├── input
├── output
└── vdexExtractor

PS: 上面压缩包中已经创建了,直接上传即可。

在Ubuntu环境下,下面以Media.vdex为例,把Media.vdex上传到input目录

.vdex转.cdex

./vdexExtractor -i input/Media.vdex -o output/

打印信息如下:

root@ubuntu:/home/water/vdex2dex_linux64# ./vdexExtractor -i input/Media.vdex -o output/
[INFO] Processing 1 file(s) from input/Media.vdex
[INFO] 1 out of 1 Vdex files have been processed
[INFO] 1 Dex files have been extracted in total
[INFO] Extracted Dex files are available in 'output/'

.cdex转.dex

./compact_dex_converter ./output/Media_classes.cdex 

打印信息如下:

root@ubuntu:/home/water/vdex2dex_linux64# ./compact_dex_converter ./output/Media_classes.cdex 
Opened './output/Media_classes.cdex', DEX version '001'
compact_dex_converter I 04-12 03:53:06  9727  9727 compact_dex_converter_main.cc:175] StandardDex file successfully extracted to ./output/Media_classes.cdex.new

上一步获取到了新的Media_classes.cdex.new文件,其实已经是dex文件了,为了方便,可以把后缀改为.dex,如下

Media_classes.cdex.new.dex

jadx-gui查看.dex文件

在Window上打开jadx-gui-1.1.0-no-jre.exe,把Media_classes.cdex.new.dex拖进入,即可查看源码了。

参考文章

  1. Android反编译vdex转dex,支持Android10
  2. Android dex, odex, oat, vdex, art文件介绍
  3. 【笔记】odex , vdex ,art 文件区别

广告也精彩
版权声明:125la.com站长 发表于 2022年4月12日 下午7:43。
转载请注明:Android反编译之vdex转dex查看源码 | 125啦读书导航

相关文章

广告也精彩

暂无评论

暂无评论...