注 : 这只是最基础的反编译 , 更高阶的会在后续更新

准备工作

新建一个Android工程用来测试

Android 应用程序 apk 反编译

然后在xml中添加 三个控件 , 在drawable中添加一个图片 , 在java文件中写一段代码 , 来验证反编译之后是否能正常查看

Android 应用程序 apk 反编译

Android 应用程序 apk 反编译

Android 应用程序 apk 反编译

然后进行打包出apk文件

反编译需要用到三个工具

工具一 : apktool   下载地址https://bitbucket.org/iBotPeaches/apktool/downloads/

工具二 : dex2jar   下载地址https://sourceforge.net/projects/dex2jar/files/

工具三 : JD-GUI   下载地址 : http://java-decompiler.github.io/

如下图所示为下载好的三个文件以及刚刚打包的APK文件

Android 应用程序 apk 反编译

一  资源文件反编译

如果单纯想要App中的资源文件 , 直接把APK安装包扩展名改为 zip 然后解压即可

Android 应用程序 apk 反编译

Android 应用程序 apk 反编译

Android 应用程序 apk 反编译

Android 应用程序 apk 反编译

如图所示 , 直接可以看到我在一开始添加的图片资源

当然想要看其他的资源文件直接解压出来的肯定是不行的 , 什么? 解压完不是有AndroidManifest.xml文件吗 , 不好意思 , 乱码 . 如图

Android 应用程序 apk 反编译

二 其他xml反编译

用 cmd 进入存放 apk文件和 apktool文件的目录 或者直接打开目录 , 右键选择git  借助git bash 可以直接进入当前目录

Android 应用程序 apk 反编译

输入 java -jar apktool_2.4.0.jar d -f apk文件路径 -o MMTS

注 : apk文件路径根据自己情况填写, 比如我的是 : 如下图

Android 应用程序 apk 反编译

回车 , 等待反编译完成 , 没有报错 即为反编译成功

Android 应用程序 apk 反编译

可以看到多了一个 MMTS 文件

Android 应用程序 apk 反编译

里面目录结构如图

Android 应用程序 apk 反编译

可以看到 AndroidManifest.xml 可以查看

Android 应用程序 apk 反编译

其他的xml也可以正常查看

Android 应用程序 apk 反编译

三.java文件反编译

还记得一开始解压apk 出来的文件吗 , 将其中的 classes.dex 复制到 dex2jar-2.0 下

Android 应用程序 apk 反编译

然后用cmd 命令行(git bash 不能在这使用)进入到该目录下 输入d2j-dex2jar classes.dex命令 , 执行

Android 应用程序 apk 反编译

执行成功之后即可在dex2jar-2.0目录下 看到如下 jar文件

Android 应用程序 apk 反编译

然后用 jd-gui工具打开该文件即可

Android 应用程序 apk 反编译

可以看到之前写的java 已经反编译成功了

注 : 以上反编译主要针对 java语言的 ,  过几天研究研究 kotlin 或者是 混合开发的反编译

相关文章: