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

android 反编译apk

2016-02-18 11:50 337 查看
反编译apk对于一个android开发者老说还是很有必要的,尽管窃取别人的东西不是什么光彩的事情,但从技术层面来讲应该是每一个android开发者所必须掌握的技能,下面就来说说如何反编译一个apk。

所需工具:

1、dex2jar(负责反编译java代码)
2、jd-gui.jar(负责奖dex2jar翻边出来的jar包转为java代码)
3、apktool(负责反编译资源文件)

以上工具的下载链接:http://download.csdn.net/detail/u010948188/9435261

反编译java代码

为了尊重别人的劳动成果就不随便拿别人的apk做测试了,自己随便找了一个之前自己的demo的apk,命名为test.apk。
将以上下载的工具包解压会看见



解压dex2jar



再将我们之前的apk解压缩会看到“classes.dex”文件,将其复制到刚才dex2jar解压后的文件夹中,打开cmd到dex2jar

执行 “d2j-dex2jar classes.dex” 命令,如图:



再次打开该文件夹会发现多了一个“classes-dex2jar.jar”文件,这算是第一步完成了,
这时需要用到第二个工具:jd-gui.jar,直接双击打开选择之前生成的jar就可以看到java内容了,



到上面已经将java代码全部反编译结束了,下面开始反编译资源文件

反编译资源文件

打开刚才解压apk出来的文件夹,有人会发现已经有res文件夹了,里面的资源也都有,要是你觉得就这样就ok了那就打错特错了,不信打开某个xml文件看看,一定是乱码,这并不奇怪,其实在我们打包apk的时候对这些资源都是经过编译的,既然直接打开不行的话那怎么办呢,这是就需要用到我们第三个工具:apktool

将我们要反编译的apk(test.apk)放到apktool文件夹,同样cmd到该文件夹目录, 执行:apktool d test.apk



看到这个你就算成功了,当然同样的操作你也可能不成功,原因是你之前有用过apktool的老版本操作过,使其在你电脑C:\Users\administrator\apktool\framework 目录留下了1.apk的文件,闪电他重新执行apktool d test.apk就可以。
此时你打开apktool的文件夹会发现多了一个名为“test”的文件夹,这是打开里面的文件看看发现已经不是乱码了,这正是我们想要的。



好了到这一步算是整个apk的反编译流程结束了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 反编译