天天看点

Android APK反编译得到源码

1、背景介绍

        在Android开发过程中,有时候,我们需要使用到破解和反编译。因为Android是基于Java语言的,在apk应用程序中,实际上是java语言的文件经过特殊处理,这里,我们可以使用以前Java上的一些文件,来反编译查看文件中的源码等信息。

2、修改后缀

       Android中以.apk为文件结尾的文件,实际上是一个特殊格式的压缩文件,我们是可以直接使用.zip文件查看器查看的。我们这里,将一个apk文件改为rar文件,然后使用压缩文件查看工具打开。如下图所示:

Android APK反编译得到源码
Android APK反编译得到源码

3、解压rar文件

        解压rar文件  ,得到其中的classes.dex文件,如下图所示:

Android APK反编译得到源码

4、转换文件

       虽然我们说Android中运行的文件,实际上还是java文件,但是这里的.dex文件,还不能算是java文件,也不能使用java反编译工具查看。这里的.dex文件时经过特殊处理的,我们不能直接查看,需要使用特定的工具将之反编译一下,这里我们需要用到dex2jar 把dex文件转为jar文件。

4.1、解压dex2jar

       解压dex2jar.bat,并且找到该文件所在的目录,如笔者计算机所示:

Android APK反编译得到源码

4.2、使用Dos命令

打开DOS命令行,进入dex2jar所在目录,运行 dex2jar.bat classes.dex 生成 classes_dex2jar.jar。如下图所示:

Android APK反编译得到源码
Android APK反编译得到源码

5、使用jd_gui

       等我们将dex文件转换成为了jar文件之后,就可以使用java世界中的反编译查看工具jd_gui查看jar文件反编译得到的java文件了。笔者所反编译的代码如下图所示:

Android APK反编译得到源码

6、下载地址

      这里主要使用到了dex2jar工具和jd_gui两个工具,其下载地址为:

dex2jar下载地址

Jd-gui下载地址