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

使用apktool反编译apk文件

2016-07-16 14:03 453 查看
ApKtool是一个apk编译工具,能够反编译apk文件。

Apktool官方介绍:

http://ibotpeaches.github.io/Apktool/

当前Apktool的最新版本为2.1.1,需要JDK1.7的支持。在进入Apktool的安装之前,请确保电脑已安装JDK1.7。

可通过命令行java -version查看当前已安装JDK的版本信息。



一、安装Apktool步骤(Windows环境下):

(1).下载apktool.bat文件。

下载地址:https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/windows/apktool.bat

(2).下载apktool.jar文件。去掉文件名中的版本号,即最终文件名为“apktool.jar”。

下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads

(3).将apktool.bat和apktool.jar放到同一个路径下,并添加到系统环境变量中。

以我的电脑为例,这里apktool.bat和apktool.jar文件在D:\android\apktool路径下。



则在环境变量path中追加D:\android\apktool。



二、反编译APK:

命令行代码:

apktool d -s <file.apk> -o <outdir>

命令行介绍:

d <file.apk>:执行decode,<file.apk>表示被反编译的apk文件的绝对路径。

-s:指定不反编译源码,即保留classes.dex文件。

-o <outdir>:指定反编译之后生成文件的路径。

比如,当前我的电脑有如下apk文件。



执行命令

apktool d -s D:\android\apkfile\com.sina.weibo_6.7.2_3242.apk -o D:\android\apkfile\weibo



执行完毕,我们会发现在apk文件路径中多了一个weibo的文件夹。



打开weibo文件夹,里面就是成功反编译之后的文件。



此时,我们已经可以成功的获取到res路径下的所有文件。下面,我们再来进一步获取java代码。

三、获取java代码

(1).使用dex2jar工具,将dex文件转成jar文件。

dex2jar下载地址:

https://sourceforge.net/projects/dex2jar/

dex2jar命令:

d2j-dex2jar.bat <classes.dex>

以我的电脑为例,dex2jar的解压路径为D:\android\dex2jar-2.0,我们将上面weibo的dex文件转为jar包,首先将命令行切换到dex2jar目录,然后执行

d2j-dex2jar.bat D:\android\apkfile\weibo\classes.dex



此时会发现dex2jar的安装路径中多了一个classes-dex2jar.jar的文件,即是转换之后的jar包。



(2).使用jd-gui工具,查看jar包代码。

jd-gui下载地址:

http://jd.benow.ca/

我们可以选择可独立运行的jd-gui工具,或eclipse和intellij插件。这里已jd-gui-windows.zip为例。解压文件,双击jd-gui.exe即可运行。

我们将上面获取到的jar包拖入到jd-gui中,即可查看java代码。因打包apk时使用了proguard混淆,所以只能看到一部分代码。

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