Android apk反编译

Apk反编译,即 Apk包 -> 代码 的一个逆向过程。如果对正向代码 打包成apk不怎么理解的,可以阅读Apk打包流程(简) :

https://blog.csdn.net/qq_30304193/article/details/81945488

一、反编译工具介绍:

  作用 下载地址
apktool 获取资源文件,资源文件获取,可以提取出图片文件和布局文件进行使用查看

https://ibotpeaches.github.io/Apktool/install/

下载最新版本

Android apk反编译

dex2jar

获取源码文件,将apk反编译成java源码(classes.dex 转化为jar文件)。实际上是一个.dex->.class过程

官网:https://sourceforge.net/projects/dex2jar/

直接点击下载即可

Android apk反编译

jd-gui 源码查看,查看apk中classes.dex转化成的jar文件。.class->.java过程

官网:http://jd.benow.ca/

 如windows的选择如下下载

Android apk反编译

二、反编译工具的使用

反编译过程,就是使用apktool查看apk的资源文件、dex2jar+jd-gui查看apk的源码的过程。

apktool查看apk的资源文件(如果直接解压.apk文件,xml文件打开全部是乱码):

1、下载apktool

进入官网 界面如下:

Android apk反编译

注意:上图下载2的apktool时,一般会是apktool_2.x.x.jar的,下载后重命名为apktool.jar(这里不需要解压)

下载好后得到两个文件如下:

Android apk反编译

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):

Android apk反编译

运行结果:

Android apk反编译

注意:第2步很重要,否则无法反编译,会报如下错误。

Android apk反编译

dex2jar+jd-gui查看apk的源码:

1、将APK文件的后缀改为.zip,然后解压,从解压的文件中找到classes.dex文件,并将其放入dex2jar同一目录下,如下:

Android apk反编译

放入 dex2jar同一目录,这里是在C:\Users\dell\Desktop\反编译\dex2jar-2.0 下:

Android apk反编译

2、cmd中也进入到同样的目录,然后输入命令:d2j-dex2jar.bat classes.dex,即完成了.dex ->.class过程。

注意:d2j-dex2jar.bat是解压工具dex2jar后的批处理文件名,如上步骤图的红线部分。因为有得下载的工具解压后不是这个名字。

Android apk反编译

生成classes-dex2jar.jar如下:

Android apk反编译

3、运行jd-gui.exe查看反编译后的源码文件:

Android apk反编译

选择上步骤生成的"classes-dex2jar.jar"文件:

Android apk反编译