Android APK反编译

主要目的

反编译APK的目的主要是用于学习,查看代码,了解思路,也可以用于了解自己的应用缺陷。

工具

反编译工具 apktool,dex2jar,jd-gui,Jadx,ClassyShark,反编译工具比较多,目前只介绍这几款工具,一般是前面三款工具配合使用,网上很多工具其实就是对这三款工具进行的一个包装。

先介绍apktool,dex2jar,jd-gui这三款工具,也是我最开始接触的反编译工具,流传也是最靠谱的。

注意:以下所有工具几乎都需要JDK支持

apktool

apktool Logo

反编译apk,输出资源文件和源码的smali文件,可以查看和提取布局、图片文件及。

命令行(注意路径)

apktool d xxx.apk

用法就这么简单,在当前目录下会生成xxx(apk文件名)目录,里面可以查看和提取资源文件及smali文件。

指定目录命令行(注意路径)

apktool d xxx.apk -o /xxx/xxx

帮助命令行(注意路径)

apktool help

官方介绍及下载

dex2jar

Android APK反编译_第1张图片
dex2jar Logo

将dex或apk文件转换为jar文件,工具名称已经非常明白了。

dex文件的获取方式(Mac)

第一种 修改后缀名为zip,双击文件解压Apk就可以获取 xxx.dex文件

第二种 命令行unzip xxx.apk -d ./xxx 解压Apk获取xxx.dex文件

命令行(注意路径)

sh dex2jar.sh xxx.dex

在当前目录下会生成xxx_dex2jar.jar文件,然后再用jd-gui工具游览jar文件。

上面是我以前的做法,写这篇博客的时候学习了新方法,在新版本的dex2jar已经支持apk了,所以可以省略获取dex文件的步骤。

命令行(注意路径)

sh dex2jar.sh xxx.apk

Github及下载地址

jd-gui(Java Decompiler)

Android APK反编译_第2张图片
jd-gui Logo

jd-gui是以单独的程序的方式运行的反编译工具,用于浏览jar文件中的class文件。使用方式比较简单,不做过多的介绍,双击运行,打开jar文件就可以游览了。

官方介绍及下载

Jadx

Jadx Image

这个工具集合了前面3款工具的功能,支持apk、dex、jar、class、zip格式文件。

使用步骤(Mac)

  1. 下载jadx
  2. 解压文件
  3. 命令行cd /xxx/xxx/jadx-0.6.0/bin(注意路径)
  4. 命令行sh jadx-gui

使用步骤(Windows)

在第三步直接进入解压的目录jadx-0.6.0/bin下运行jadx-gui.bat即可。

Github

ClassyShark

Android APK反编译_第3张图片
ClassyShark Image

具体介绍见

【stormzhang】ClassyShark——apk分析利器

Github

下载地址

你可能感兴趣的:(Android APK反编译)