Mac下搭建 Android 反编译环境

作者: numqin | 来源:发表于2018-07-21 15:29 被阅读140次

    需要安装的工具如下:apktool、dex2jar、jd-gui

    Apk介绍

    一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。

    一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), assets,证书(certificates),和清单文件(manifest file)。

    APK 文件基于 ZIP 文件格式,它与 JAR 文件的构造方式相似。它的互联网媒体类型是:application/vnd.android.package-archive

    工具介绍

    • apktool

      apktool 是 Google 提供的 Apk 编译工具,能够编译和反编译 apk。

      apktool 的介绍和使用

    • dex2jar

      dex2jar 是一个能将 .dex 文件转化成 .jar 文件的工具集

    • jd-gui

      jd-gui 是一个独立的图形实用程序,可显示“.class”文件的Java源代码应用。

    安装

    如果嫌弃一个个官网下麻烦的可以直接使用下面的地址

    百度网盘地址

    Apktool 的版本为 2.3.3

    dex2jar 的版本为 2.0

    jd-gui 的版本为 1.4.0

    安装 apktool

    apktool官网下载地址

    1. 检查 jdk 是否安装
    2. Mac OS X 下安装
      1. 下载Mac包装器脚本(右键单击,将链接另存为apktool
      2. 下载apktool
      3. 将下载的jar重命名为 apktool.jar
      4. 将两个文件(apktool.jarapktool)移动到/usr/local/bin(需要root)
      5. 确保两个文件都是可执行的(chmod +x
      6. 尝试apktool通过命令提示符运行

    有了上面的安装步骤现在我们来安装吧

    1. 前往官方的下载地址下载我们需要的两个文件(apktool,apktool.jar)

      1. 下载apktool脚本,修改下载的文件名为 apktool 不加任何后缀名。
      image
      1. 下载 apktool.jar ,下载下来的文件名会带有版本信息,将下载的jar重命名为 apktool.jar
    2. 将两个文件移动到 /usr/local/bin

      1. 打卡文件管理系统按 command + shift + g 键,最后将文件保存在 /bin 文件夹下面
      image
    3. 确保两个文件都是可执行的(chmod +x

      1. 打开终端,输入

        chmod +x apktool.jar
        chmod +x apktool
        
    4. 测试 apktool 命令

      1. 在终端中输入 apktool
      image-20180721143947106

    安装 dex2jar

    dex2jar 官方下载地址

    这个的安装很简单只需要把下载的压缩文件解压到你想的文件夹中即可。

    安装 jd-gui

    jd-gui 官方下载地址

    也是解压即可

    简单的例子

    下面我们去找个 apk 文件练练手吧。

    Apktool 的使用

    打开终端

    //切换到 apk 所在的目录
    输入命令 apktool d demo.apk
    

    它会在当前目录生成一个跟 apk 文件同名的文件夹。

    资源文件是有了,那 java 代码在哪里呢?apktool 只能提取到资源文件,java 代码还需要另外处理

    dex2jar 使用

    我们现在把 apk 当成一个压缩包解压开来,里面有个 .dex 文件。dex2jar 能把 .dex 文件转化成 .jar 文件

    1. 将 apk 中 .dex 文件移动到我们刚刚解压 dex2jar 安装的目录下
    2. 终端输入 sh d2j-dex2jar.sh classes.dex
    

    这时我们会在目录中看到有个 .jar 文件。

    运行 sh d2j-dex2jar.sh classes.dex 如果出现了 Permission denied

    只需要终端中运行 chmod +x d2j_invoke.sh 即可

    jd-gui 使用

    直接打开我们安装的 JD_GUI.app ,将 .jar 文件拖入应用上,我们即可看到 java 代码了。

    image-20180721151415259

    到此一个简单的例子就结束了

    参考

    APK 介绍维基百科

    Apktool 介绍百度百科

    相关文章

      网友评论

        本文标题:Mac下搭建 Android 反编译环境

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