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

Android反编译详解(附图)

2013-11-05 21:06 302 查看

Android反编译详解(附图)


通过反编译Android应用程序,我们可以获得APK中的重要源码。从而,我们可以更好的学习Android开发。
声明:因本人能力有限,如有错误恳请指正,一起交流,本人联系QQ:2285748379.
 
本文反编译教程使用的工具如下:



jd-gui(用于看class文件里的源码)下载地址:
http://www.shangxueba.com/share/p6794627.html
dex2jar-0.0.9.15(将classes.dex文件转成jar文件)下载地址:
http://www.shangxueba.com/share/p6794520.html
apktool-1.5.1(获得资源)下载地址:
http://www.shangxueba.com/share/p6796123.html
Androidfby(图形反编译,不建议使用)下载地址:
http://www.shangxueba.com/share/p6796022.html
本文下载地址:
http://www.shangxueba.com/store_m_1867506_37712_1_1.html
 
 

一、     反编译得到Java源代码


本次例子在本地F盘中的Test文件夹进行,将上面下载的文件复制到F:\Test地址下。本节使用的工具是dex2jar.bat和jd-gui.exe。

dex2jar作用的文件是dex2jar.bat文件。

1.解压dex2jar-0.0.9.15.zip,并将要反编译的的apk文件复制到dex2jar-0.0.9.15文件夹内。同时,将apk文件的后缀改为zip。
如图(本文以Boat.apk为例):



 
 
 
 
2.打开Boat.zip文件,将classes.dex解压出来。

 


 
3.用命令行进入dex2jar-0.0.9.15文件夹,并执行dex2jar.bat classes.dex指令,生成classes.dex2jar.jar(我们需要的文件,也是放置源码的文件)文件。如下图:

 


 
 
4.使用jd-gui.exe程序打开classes.dex2jar.jar,我们需要的源码就被我们编译完成了。如下图:



注意:因为Boat.apk文件是经过混淆编译生成的文件,所以我们打开classes.dex2jar.jar
文件的情况如上图含有a、b、c。如果要读懂需要费点时间和精力。
 
4000

 

二、获得apk的图片、XML配置、语言资源等文件


如果我们想汉化软件,那么以下的介绍将对我们很有用。我们虽然获得了Boat.apk的源码,我们还要获得apk的图片、XML配置、语言资源等文件。
本节使用的工具是apktool.bat。
具体步骤如下:
1.解压apktool-1.5.1.rar到apktool-1.5.1文件夹中,文件夹apktool-1.5.1里含有:aapt.exe,apktool.bat,apktool.jar 
2.将Boat.apk复制到apktool-1.5.1中,用命令行进入apktool-1.5.1,执行如下语句:apktool.batd f:\test\apktool-1.5.1\Boat.apk f:\test\ apktool-1.5.1\Boat
 
如下图:



 
注意:apktool.bat dapk文件的地址 apk输出的文件夹地址
 
3.将反编译完的文件重新打包成apk,很简单,输入apktool.bat   b    Boat
 如下图:
 


注意:因为Boat.apk文件被破坏了,所以本次步骤2、3失败。因此我重新找个文件代替命名为Boat02.apk。
 
 
重新如下:
2.将Boat02.apk复制到apktool-1.5.1中,用命令行进入apktool-1.5.1,执行如下语句:apktool.batd f:\test\apktool-1.5.1\Boat02.apk f:\test\apktool-1.5.1\Boat02结果如下:



 
3.将反编译完的文件重新打包成apk,很简单,输入apktool.bat   b    Boat02
 如下图:
 


打包apk后的文件在目录下,生成了两个文件夹:build和dist;其中,打包生成的Boat02.apk,在上面的dist文件夹下。
 

三、图形化反编译apk


用图形反编译这个比较简单,本人只提供软件。浏览者自己研究。
 


 
 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: