教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

时间:2024-03-10 19:23:30

Android开发一段时间了。在此期间,发现直接解压apk得到的xml文件打开是乱码,由于想参考他人软件好的布局美化,所以想到反编译apk。进过多方baidu谷歌,查到apk反编译方法,以下是我的实践过程。

本人在此声明:写出来不是为了破解他人软件,完全是学习的态度。不过,好像通过这种方式也可以去汉化一些外国优秀的软件。

 

需要工具:

1.dex2jar :是将apk中的classes.dex转化成jar文件。

2.JD-GUI:jar源代码查看工具。

3.apktool:反编译android apk得到AndroidManifest.xml,Drawable下的图片,XML配置,语言资源等文件。

 

最新下载地址(地址均为官网,自己选择可下载最新版):

1.dex2jar http://code.google.com/p/dex2jar/downloads/list

    2.JD-GUIhttp://java.decompiler.free.fr/?q=jdgui

该软件为绿色无需安装,直接打开即可。打开下载地址下拉便可看到根据自己系统选择下载,

          如下图,分别为 windows ,linux 和苹果系统。

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

 

3.android-apktool:http://code.google.com/p/android-apktool/downloads/list

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

                        apktool和apktool-install-windows两个包都要下(如果你是window系统,选择apktool-install-windows,其他系统自行选择),用法下面会讲。

所需文件如下,截止本问发表时,都为最新版,并解压:

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

 

  步骤:(需安装java jdk且配置好环境变量不详述了这里)

一.反编译apk得到Java源代码

 

1,首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的,我们现在就用上述提到的2个工具来逆向导出java源文并访问。

2, 把得到的classes.dex复制dex2jar.bat所在目录。即我的上图的dex2jar-0.0.9.12-a.zip解压得到文件夹 dex2jar-0.0.9.12。 在命令行模式下(开始 -> 运行,输入cmd,回车)定位到dex2jar.bat所在目录,运行 dex2jar.bat classes.dex  ,生成classes.dex.dex2jar.jar 。如下图红线操作,为cmd命令操作,出现下图提 示:classes.dex->classes_dex2jar.jar即成功。生成classes_dex2jar.jar文件即为java源代 码,在dex2jar.bat所在目录 。

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

 

3,运行JD-GUI工具,绿色无须安装的。打开上面的jar文件,即可看到源代码,如下图。

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

        二:反编译android apk得到AndroidManifest.xml,Drawable下的图片,XML配置,语言资源等文件。

1, 解压下载的两个文件包apktool和apktool-install-windows,apktool-install-windows解压缩后得到的 包里有aapt.exe 和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解压后的一个.jar 文件copy进来,即三个文件放在一个文件夹中)。

2.打开命令窗口(开始->运行  输入cmd  回车)进入到apktool.bat的文件夹里。

输入:

apktool.bat d C:***.apk  C:***文件夹

命令行解释: d:要反编译的apk路径 输出文件夹

注:要反编译apk放在Capktool盘更目录下。

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

 

打开 C:***文件夹 就可以得到我们学院的各种资源了。如下我反编译的android qq。

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

 

打开androidManifest.xml如下:

教你如何反编译Android apk获取java源代码,图片、XML配置、语言资源

               不过如果你愿意上诉复杂操作的话可以把下载到的apktool中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压 缩到你的Windows安装目录下,以方便使用Dos命令.即可简化命令直接cmd下输入apktool d C:***.apk  C:***文件夹,原理不说了,熟悉环境变量原理的自然明白,如果想了解可以baidu,这里不在详述了。

来自原文