美文网首页
Android 反编译 .vdex、.odex、.dex 文件

Android 反编译 .vdex、.odex、.dex 文件

作者: Boy强 | 来源:发表于2021-04-01 17:58 被阅读0次

    准备环境

    1.下载baksmali-2.5.2.jar和smali-2.5.2.jar,baksmali用来反编译odex文件,smali用于将odex文件反编译生成的smali文件,重新打包成dex文件,下载链接:
    https://bitbucket.org/JesusFreke/smali/downloads/

    2.下载dex2jar-2.0,用于将dex文件编译成jar文件(可以下载dex-tools-2.1和dex2jar-2.0 两个版本),github地址:
    https://github.com/pxb1988/dex2jar

    3.下载jd-gui.exe,用于查看java代码:
    https://github.com/java-decompiler/jd-gui

    反编译.odex文件

    1.新建文件夹,把baksmali、smali文件连同dex文件和vdex文件放在同一个文件内,odex和vdex文件名字要保持一致。



    2.使用baksmali反编译odex文件,反编译命令:java -jar baksmali-2.5.2.jar d SystemUI.odex
    执行此命令后会在当前文件夹内生成一个名为out的文件夹,此文件内即反编译生成的smali文件,如图所示:



    3.使用smali将上一步生成的文件重新打包成dex文件,打包命令:java -jar smali-2.5.2.jar a out,执行
    此命令后会生成名为out.dex的文件,如图所示:



    反编译.dex文件

    4.将上一步生成的out.dex文件拷贝到dex2jar-2.0文件夹下(dex2jar-2.0压缩包解压后的文件夹),
    执行命令:d2j-dex2jar.bat out.dex,会生成out-dex2jar.jar和out-error.zip文件,至此反编译完成,如图所示:


    5.双击打开下载好的jd-gui.exe,打开上一步生成的out-dex2jar.jar文件,即可查阅java源码:


    反编译.vdex文件

    1.反编译.vdex文件需要利用vdexExtractor工具,下载地址:
    https://github.com/anestisb/vdexExtractor
    安装及使用参照:https://blog.csdn.net/Alexwym/article/details/107730906

    安装编译vdexExtractor根据上面链接的安装提示如图:


    2.将.vdex文件转为.dex文件
    进入vdexExtractor工具的bin目录下,执行./vdexExtractor.exe -i xxx.vdex或./vdexExtractor.exe -i xxx.vdex -o ./ 指令。便可在当前目录下生成相应的dex文件如图:


    image.png

    3.注意:某些.vdex 可能会报错,需要在后面添加, --ignore-crc-error,反编译Dex 忽略CRC错误


    1. 参考上面反编译.dex文件

    Tips

    1.如果baksmali.jar 其他版本的包,可能使用方法不同,请help。
    2.dex转jar的时候dex2jar-2.0 版本可能不支持版本,换成dex-tools-2.1,如图:




    如果本文有帮到你,记得点赞加关注哦

    参考:
    https://blog.csdn.net/sj18624326200/article/details/111286047
    https://blog.csdn.net/qq_32072451/article/details/86626004
    https://blog.csdn.net/Alexwym/article/details/107730906

    相关文章

      网友评论

          本文标题:Android 反编译 .vdex、.odex、.dex 文件

          本文链接:https://www.haomeiwen.com/subject/lwotkltx.html