Android反编译odex文件及资源文件
准备环境
- 下载baksmali-2.4.0.jar和smali-2.4.0.jar,baksmali用来反编译odex文件,smali用于将odex文件反编译生成的文件重新打包成dex文件,下载链接:
https://bitbucket.org/JesusFreke/smali/downloads/ - 下载dex2jar-2.0,用于将dex文件编译成jar文件,github地址:
https://github.com/pxb1988/dex2jar - 下载jd-gui.exe,用于查看java代码:
https://github.com/java-decompiler/jd-gui
反编译odex文件
1.新建文件夹,把baksmali、smali问价连同odex文件和vdex文件放在同一个文件内,odex和vdex文件名字要保持一致。
- 使用baksmali反编译odex文件,反编译命令:java -jar baksmali-2.4.0.jar d launcher.odex,
执行此命令后会在当前文件夹内生成一个名为out的文件夹,此文件内即反编译生成的文件,如图所示:
3.使用smali将上一步生成的文件重新打包成dex文件,打包命令:java -jar smali-2.4.0.jar a out,执行
此命令后会生成名为out.dex的文件,如图所示: - 将上一步生成的out.dex文件拷贝到dex2jar-2.0文件夹下(dex2jar-2.0压缩包解压后的文件夹),
执行命令:d2j-dex2jar.bat out.dex,会生成out-dex2jar.jar和out-error.zip文件,至此反编译完成,如图所示:
- 双击打开我们下载好的jd-gui.exe,打开上一步生成的out-dex2jar.jar文件,即可查阅java源码:
反编译apk资源文件,查看布局、manifest等
1.下载Apktool,下载链接:https://github.com/iBotPeaches/Apktool
2. 反编译资源文件,执行命令:java -jar apktool_2.4.1.jar d -f launcher.apk -o launcher,如图所示:
3. 打开上一步生成的launcher文件夹,即可查看应用的布局、manifest等资源文件: