android 反编译 Apk

来源:互联网 发布:查看进程端口号 编辑:程序博客网 时间:2024/06/11 14:08

    文章前大部分参照了原博http://blog.csdn.net/xuejinwei0530/article/details/8296763  表示感谢。 

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

    学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-apktoolhttp://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 的文件夹中;



0 0
原创粉丝点击