Android 反编译 apktool+dex2jar+jd-gui

  • 前言
  • ApkTool
    • 下载
    • 使用
  • dex2jar
    • 下载
    • 使用
  • jd-gui

前言

反编译不是让各位开发者去对一个应用破解搞重装什么的,主要目的是为了促进开发者学习,借鉴好的代码,提升自我开发水平。

该教程只在mac环境下测试。

ApkTool

资源文件获取,Google提供的APK编译工具,可以反编译和回编译。一般将apk文件后缀改成zip解压后得到的xml会是乱码,用apktool则不会。

下载

下载地址:地址一(google)、地址二(github)
Android 反编译 apktool+dex2jar+jd-gui_第1张图片

上图的意思大概是:

  1. wrapper script 右键 >>> 链接另存为 >>> 文件名保存为 apktool,或者直接点进去,把网页里的内容复制,把复制的内容保存到一个命名为apktool文件里,文件不要加后缀;

  2. 下载 apktool-2.x.jar,下载地址:apktool-2.x.jar download,下载完成后改名为:apktool.jar;

  3. apktoolapktool.jar 移动到 /usr/local/bin 文件目录下,需要添加权限;

    sudo chmod -R 777 文件夹名称
    # -R 是指级联应用到目录里的所有子目录和文件
    # 777 是所有用户都拥有最高权限

  4. 在终端能够运行 apktool 就说明成功了。

使用

使用很简单,终端 cd 到任意一个文件夹中,然后输入命令:

  • 反编译

    apktool d xxx.apk # 反编译,其中xxx.apk为反编译的apk

  • 二次打包

    apktool b xxx -o yyy.apk

生成的文件夹(终端cd到哪儿文件夹就在哪儿)就是该apk的资源文件;

dex2jar

将dex文件转换为jar包;

下载

Android 反编译 apktool+dex2jar+jd-gui_第2张图片

下载地址:dex2jar download

下载完成后就是一个zip文件,解压到任意一个文件夹中;

使用

  1. 解压 dex2jar-2.0.zip 到文件夹 dex2jar-2.0;

  2. 修改文件权限

    Chmod +x ../dex2jar-2.0/d2j-dex2jar.sh ../dex2jar-2.0*/*d2j_invoke.sh

    # d2j-dex2jar.sh 和 d2j_invoke.sh 为绝对路径;

  3. 输入命令:

    sudo sh ../dex2jar-2.0/d2j-dex2jar.sh xxx.apk

  4. xxx.jar 就是终端cd后的目录里。

jd-gui

JD-GUI是一个独立的图形工具,用于显示“.class”文件的Java源代码。您可以使用JD-GUI浏览重建的源代码,以便即时访问方法和字段。

下载地址:JD-GUI

Android 反编译 apktool+dex2jar+jd-gui_第3张图片

你可能感兴趣的:(Android,android,反编译,apktool,dex2jar,jd-gui)