反编译主要用到三个工具:dex2jar,jd-gui,apktool,他们的下载地址如下:
- dex2jar:github.com/pxb1988/dex…
- jd-gui:java-decompiler.github.io/
- apktool:ibotpeaches.github.io/Apktool/ins…
使用 dex2jar
-
将需要反编译的dex文件(这里是classes.dex)复制到 dex2jar 解压目录下。
-
打开命令行进入 d2j-dex2jar.bat 文件所在目录,输入命令 d2j-dex2jar.bat classes.dex 。
此时可以看到目录中多出了classes-dex2jar.jar文件。至于怎样得到dex文件,很简单,把你的apk后缀改为zip然后解压即可提取出里面的dex文件。
那么如何查看该jar文件的内容呢?此时就需要安装 jd-gui,按照上面的地址下载解压,然后将jar文件拖到工作区即可打开 。
使用apktool
apktool的安装和使用比较复杂,可以参考这篇文章
首先我在本地F盘的Android文件夹下新建了个apktool文件夹(下面有用到)。 第一步,就是要让我们下载apktool.bat,把鼠标移至wrapper script上,然后右击,链接另存为…,把下载来的文件放到F:\Android\apktools,记得名字要改成apktool.bat;
第二步,下载apktool.jar文件,点击find newest here,跳到下载页,我们能尽量下载最新版本,旧版本可能不能用(目前百度出来的反编译博文很多都提供apktool.jar下载,但是由于版本太旧,无法反编译),我这里下载最新版本apktool_2.3.1.jar,也把该文件刚到apktool文件夹下。
第三步:把你下载来的jar文件(笔者下载的最新版本apktool_2.3.1.jar)重新命名为:apktool.jar。
第四步:官网建议你把apktool.bat、apktool.jar放到C盘的Windows下,但是我没有,我是放在F盘的apktool文件夹下,为什么不能按着官网的步骤来呢,请看第5步。
第五步:按官网的意思是如果你没把apktool.bat、apktool.jar放到C盘的Windows下,就需要我们自行配置环境变量,因为如此,所以我需要自己配置环境变量,添加F:\Android\apktools
经过上面5步,我们环境就搭建好了,下面就是如何使用了,win+R,输入cmd调出命令行窗口,切换到apktool文件夹目录下;接下来你把apk拷贝到F:\Android\apktools下面,我这里是app-release.apk;然后你在cmd窗口输入命令:apktool d apk-release.apk,按回车即可以在F:\Android\apktools发现一个新的文件夹app-release(这个文件夹的文字跟你的apk名字一样),里面我们就可以看到xml文件、AndroidManifest.xml和图片等资源文件了。