Mac 下反编译 apk (apktool+dex2jar+JD_GUI+Luyten)

准备工作

  1. 下载apktool根据提示安装

    1. 复制 wrapper script 中的代码,另存为本地 "apktool" 文件,无后缀
    • 下载 apktoolxxx.xxxx.jar,修改名字为 "apktool.jar"
    • 将 "apktool" 和 "apktool.jar"拖进"/usr/local/bin"目录下,或命令行之行:
      $ sudo -i cp ~/Desktop/apktool ~/../../usr/local/bin
      $ sudo -i cp ~/Desktop/apktool.jar ~/../../usr/local/bin


    • 添加它俩权限:
      $ sudo chmod +x apktool
      $ sudo chmod +x apktool.jar

    • 运行,查看是否安装成功
      apktool -v


  • 下载 dex2jar,解压,修改权限:
    chmod +x /home/.../d2j-dex2jar.sh /home/.../d2j_invoke.sh

开始反编译

  1. 准备.dex文件

    • 新建 apk 文件夹,放入 apk 文件(文件名不可包含中文,例子是maple.apk),cd进目录执行:
      apktool d maple.apk
      

      在apk文件夹下生成xxx文件夹,内部包含AndroidManifest.xml, assets, build, lib, original, res等文件


  2. 反编译.dex

    • 将.apk后缀改成.rar,解压,拿到classes.dex文件,(多个dex文件则多次执行第二步)

    • cd进dex2jar文件夹,执行:

        ./d2j-dex2jar.sh /Users/fred/Desktop/apk/classes.dex
      

      在dex2jar文件夹下生成 maple.jar



      得到结果

  3. 查看jar文件

    • 用JD_GUI,打开maple.jar文件,查看java代码
    • 当出现//INTERNAL ERROR时,下载Luyten 再打开即可

参考

推荐阅读更多精彩内容