反编译Android APK

使用到的工具:
Apktool:用来获取图片、xml等资源文件
dex2jar:把dex文件转换成jar包
JD-GUI:反编译jar包,获取源代码
JADX-GUI:方便的反编译工具,一步到位直接反编译apk

第一种方式. 使用dex2jar、JD-GUI和apktool

第一步. 反编译获取源代码:

  1. 解压你要反编译的apk文件(apk文件其实是个压缩文件)。
  2. 进入apk解压后的目录,拷贝classes.dex文件,粘贴到dex2jar目录。
  3. 打开cmd,把路径切换到dex2jar目录,运行命令: d2j-dex2jar classes.dex ,成功后会在dex2jar目录生成一个classes-dex2jar.jar文件。
  4. 打开JD-GUI,然后把刚才生成的classes-dex2jar.jar文件拖进去就可以查看源代码了。
反编译Android APK_第1张图片

反编译Android APK_第2张图片

第二步.获取图片、xml等资源文件:

apktool工具是一个jar包,不需要解压。
打开cmd,进入apktool工具根目录,运行命令: java -jar apktool_2.0.2.jar d -f csdn.apk -o cccc,
其中cccc是破解后的文件输出目录,可以自定义,不需要自己创建。
完成后会发现apktool工具根目录下多了一个cccc文件夹,里面的图标、xml文件等就可以直接使用了。

反编译Android APK_第3张图片

反编译Android APK_第4张图片

反编译Android APK_第5张图片

如果你觉得上面这些步骤太麻烦的话,这里有一个集成了以上几种工具的一步到位反编译apk工具onekey-decompile-apk。
下载地址: https://github.com/ufologist/onekey-decompile-apk,使用方法里面有详细介绍。

第二种方式. 使用jadx-gui

jadx-gui是一个图形话反编译工具,可反编译apk文件,使用非常简便 。能获取源码,获取xml文件,缺点是不能获取图片文件

使用方法:下载了之后解压,进入解压后的目录,运行bin文件夹里面的jadx-gui.bat,然后选择你要反编译的apk所在的位置,或者把你的apk文件直接拖到jadx界面,ok,这就反编译成功了,就是这么简单粗暴。

jadx-gui和jd-gui反编译后的源码有一点不一样:

  1. 有些变量jd-gui会有初始化值;
  2. 有些jd-gui会反编译出错,而jadx-gui能成功,所以根据情况混合使用吧。


    反编译Android APK_第6张图片

    反编译Android APK_第7张图片

以上提到的反编译工具下载地址:

github上一个反编译工具集合的帖子:
https://github.com/Juude/droidReverse

onekey-decompile-apk:
https://github.com/ufologist/onekey-decompile-apk

JADX-GUI:
http://sourceforge.net/projects/jadx

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