Apk反编译,即 Apk包 -> 代码 的一个逆向过程。如果对正向代码 打包成apk不怎么理解的,可以阅读Apk打包流程(简) :
https://blog.csdn.net/qq_30304193/article/details/81945488
一、反编译工具介绍:
作用 | 下载地址 | |
apktool | 获取资源文件,资源文件获取,可以提取出图片文件和布局文件进行使用查看 | https://ibotpeaches.github.io/Apktool/install/ 下载最新版本 |
dex2jar | 获取源码文件,将apk反编译成java源码(classes.dex 转化为jar文件)。实际上是一个.dex->.class过程 | 官网:https://sourceforge.net/projects/dex2jar/ 直接点击下载即可 |
jd-gui | 源码查看,查看apk中classes.dex转化成的jar文件。.class->.java过程 | 如windows的选择如下下载 |
二、反编译工具的使用
反编译过程,就是使用apktool查看apk的资源文件、dex2jar+jd-gui查看apk的源码的过程。
apktool查看apk的资源文件(如果直接解压.apk文件,xml文件打开全部是乱码):
1、下载apktool
进入官网 界面如下:
注意:上图下载2的apktool时,一般会是apktool_2.x.x.jar的,下载后重命名为apktool.jar(这里不需要解压)
下载好后得到两个文件如下:
2、把上步骤下载好的两个文件放入到:C:\Windows 目录下。
3、运行cmd,进入到你需要反编译的apk目录,然后输入命令:apktool d app-official-release.apk(apktool d 你的apk名称)
输入命令(我这里存放apk目录是: C:\Users\dell\Desktop\123 ,apk名称是:app-official-release.apk):
运行结果:
注意:第2步很重要,否则无法反编译,会报如下错误。
dex2jar+jd-gui查看apk的源码:
1、将APK文件
的后缀改为.zip
,然后解压,
从解压的文件中找到classes.dex文件,并将其放入dex2jar同一目录下,如下:
放入 dex2jar同一目录,这里是在C:\Users\dell\Desktop\反编译\dex2jar-2.0 下:
2、cmd中也进入到同样的目录,然后输入命令:d2j-dex2jar.bat classes.dex,即完成了.dex ->.class过程。
注意:d2j-dex2jar.bat是解压工具dex2jar后的批处理文件名,如上步骤图的红线部分。因为有得下载的工具解压后不是这个名字。
生成classes-dex2jar.jar如下:
3、运行jd-gui.exe查看反编译后的源码文件:
选择上步骤生成的"classes-dex2jar.jar"文件: