oat转dex
1: 首先将手机中的system/framework/ system/app/ system/priv-app 拉出来 (或者可以直接下载各手机厂商公布的rom转成img)
2: 下载SmaliEx工具
Download latest version:
https://github.com/testwhat/SmaliEx/releases/tag/snapshot
Build command:
gradlew -b smaliex/build.gradle dist
Usage:
3:反编译
- Deoptimize boot classes (The output will be in “odex” and “dex” folders): ( 首先反编译boot.oat)
java -jar oat2dex.jar boot - Deoptimize application: ( 反编译系统app)
java -jar oat2dex.jar - Get odex from oat:
java -jar oat2dex.jar odex - Get odex smali (with optimized opcode) from oat/odex: (反编译为smali)
java -jar oat2dex.jar smali - Deodex /system/framework/ from device (need to connect with adb):
java -jar oat2dex.jar devfw - Limitation:
If debug infomration is trimmed (e.g. with android support library or proguarded), then it is unable to recover type information.
Cannot recognize informal oat/dex format.
dex转jar
enjarify -f xxx.dex 转化为xxx.jar然后用jadx打开为java文件
Android O以上反编译vdex
https://github.com/anestisb/vdexExtractor
vdexExtractor -i ./arm64/boot-vivo-framework.vdex -o . -f --dis -l /tmp/dis.log
compact_dex_converter 工具