Mac下搭建 Android 反编译环境

需要安装的工具如下: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 不加任何后缀名。
    Mac下搭建 Android 反编译环境_第1张图片
    image
    1. 下载 apktool.jar ,下载下来的文件名会带有版本信息,将下载的jar重命名为 apktool.jar
  2. 将两个文件移动到 /usr/local/bin

    1. 打卡文件管理系统按 command + shift + g 键,最后将文件保存在 /bin 文件夹下面
    Mac下搭建 Android 反编译环境_第2张图片
    image
  3. 确保两个文件都是可执行的(chmod +x

    1. 打开终端,输入

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

    1. 在终端中输入 apktool
    Mac下搭建 Android 反编译环境_第3张图片
    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 代码了。

Mac下搭建 Android 反编译环境_第4张图片
image-20180721151415259

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

参考

APK 介绍维基百科

Apktool 介绍百度百科

你可能感兴趣的:(Mac下搭建 Android 反编译环境)