您的位置:首页 > 移动开发 > Android开发

android 反编译 Apk

2014-01-10 14:26 239 查看
文章前大部分参照了原博/article/2139238.html 表示感谢。

正文=====================================

学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 和苹果系统。



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




apktool和apktool-install-windows两个包都要下(如果你是window系统,选择apktool-install-windows,其他系统自行选择),用法下面会讲。
所需文件如下,截止本问发表时,都为最新版,并解压:



步骤:(需安装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所在目录 。



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






二:反编译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盘更目录下。




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




打开androidManifest.xml如下:




不过如果你愿意上诉复杂操作的话可以把下载到的apktool中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.即可简化命令直接cmd下输入apktool d C:\***.apk C:\***文件夹,原理不说了,熟悉环境变量原理的自然明白,如果想了解可以baidu,这里不在详述了。
以上步骤并没有获得源码(只是获得了一个classes_dex2jar.jar文件,要使用JD-GUI工具进行查看)。
其他====================================
要获得.java格式的源码还需要使用【XJad】工具,网上大把。以下是这个软件的使用方法(操作简单,可不看):

【XJad】反编译获得.java文件!!

一个可以将.class文件反编译回.java的工具,java反编译工具:XJad2.2,可打开.class

电脑端用,java jar模拟器:KEmulator

功能特点:

1、XJad是基于Jad核心的Java源程序反编译软件,内置Jad1.5.8e2;

2、可处理多个*.class文件,可以处理文件夹内的所有文件,甚至可以处理*.jar文件;

3、带有多页面文本编辑器,也可集成在资源管理器中,随时点击右键都可进行操作;

4、支持java语法的高亮显示;

使用说明:

========

1、打开一个或者多个*.class文件,XJad反编译后,重命名为*.java文件,

保存至当前文件夹,并在编辑器中打开查看;

2、打开一个文件夹,XJad将该文件夹下所有*.class文件进行反编译,并保存至该文件夹下,

依据包路径信息生成文件夹路径,如com.spring.framework.*,

将建立com\spring\framework的文件夹结构;

3、打开一个*.jar文件,XJad将该Jar文件中的所有*.class文件解压缩到临时目录并进行反编译,

并将源文件带包路径信息保存至当前文件夹下名称为“~” + *.jar 的文件夹中;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: