反编译Android的APK文件

反编译Android的APK文件

一、反编译Apk得到Java源代码

需要2个工具

a) apk反编译成java源码工具,

b) 以及源码查看工具。

下载dex2jar.zip

http://sourceforge.net/projects/dex2jar/

apk反编译工具dex2jar,是将apk中的classes.dex转化成jar文件

 

源码查看工具jd-gui,是一个反编译工具,可以直接查看反编译后的jar包源代码

 

dex2jar 和 jdgui 最新版本下载,分别见google code:

dex2jar(google code)

(http://sourceforge.net/projects/dex2jar/)

jdgui(google code),最新版本请见 官方

(http://jd.benow.ca/)

 

具体步骤:

首先将apk文件后缀改为zip并解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的。

在命令行下定位到dex2jar.bat所在目录,运行

Windows:

dex2jar.bat    classes.dex

Linux:

dex2jar.sh classes.dex

新版本中已经改为:

dj_dex2jar.sh

生成

classes_dex2jar.jar

 

Windows步骤

然后,进入jdgui文件夹双击jd-gui.exe,打开上面生成的jar包classes_dex2jar.jar,即可看到源代码了,如下图:


 

HelloAndroid源码在反编译前后的对照如下:

 

 

Linux步骤:

下载得到

jd-gui-x.y.z.jar

x, y , z 是版本号

例如

jd-gui-1.4.0.jar

运行:

$  java -jar jd-gui-1.4.0.jar

就会打开一个程序窗口,然后加载刚才生成的classes_dex2jar.jar,即可看到所有的java的代码

 

二、apk反编译生成程序的源代码和图片、XML配置、语言资源等文件

如果是汉化软件,这将特别有用

首先还是要下载上述反编译工具包,其中最新的apktool,请到google code下载

apktool(google code)

 

具体步骤:

下载上述反编译工具包,打开apk2java目录下的apktool1.4.1文件夹,内含三个文件:aapt.exeapktool.batapktool.jar 

注:里面的apktool_bk.jar是备份的老版本,最好用最新的apktool.jar

 

在命令行下定位到apktool.bat文件夹,输入以下命令:apktool.bat  d  -f   abc123.apk   abc123,如下图:

 

上图中,apktool.bat 命令行解释:apktool.bat   d  -f    [apk文件 ]   [输出文件夹]

 

反编译的文件如下(AndroidManifest.xml为例):

 

将反编译完的文件重新打包成apk,很简单,输入apktool.bat   b    abc123(你编译出来文件夹)即可,命令如下:

 

打包apk后的文件在目录C:\HelloAndroid下,生成了两个文件夹:

build

dist

其中,打包生成的HelloAndroid.apk,在上面的dist文件夹下,Ok

 

 

三、 图形化反编译apk

上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby

首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览打开要反编译的apk

 

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章转载自:IT夜班车,否则按侵权处理.

    分享到:

Leave a Reply

Your email address will not be published. Required fields are marked *