反编译的目的是有助于我们学习规范代码,而不是植入恶意代码,窃取他人智慧成果。
Don't be evil.
本文介绍的反编译工具有4款,需要配合使用。比较经典的反编译工具apktool、dex2jar、jd-gui就不进行介绍了,在此推荐一款新发现的工具apkdb,反编译得到Resource 资源很方便。在实际使用中使用apkdb 与dex2jar 即可实现APK反编译 工作。
- apktool
- dex2jar
- jd-gui
- apkdb v2.0
Android APK生成过程
提到APK反编译,不得不提到APK生成过程。虽然工具已经提供apk反编译的功能,使得我们不用考虑具体的反编译步骤,但是知道原理还是对我们有好处的。复习一下APK生成过程吧!
APKDB获取资源文件
在我给出的链接中,直接下载,按照压缩包内的说明安装即可,安装成功后会在右键菜单中生成“使用APKDB编译”的菜单项。反编译界面如下图所示,仅仅反编译得到资源文件直接输入“1”,最后点击回车即可在APK当前目录下生成反编译后的文件夹,包含:asset, meta, lib, res, smail等文件夹。res文件夹包含所有的resource文件,可以通过APKDB自带的XML解析器查看所有的xml,包括AndroidManifest.xml。
如果想进行签名或其他操作,按照提示选项输入执行即可,不再进行复述。
Dex2jar反编译APK源码
将下载好的Dex2Jar解压到任意目录下,在Windows下可以通过d2j-dex2jar.bat 文件执行反编译工作,Mac或Linux下通过d2j-dex2jar.sh也可以进行。
进入CMD,将目录定位到dex2jar的根目录,然后将需要反编译的APK文件后缀名改为zip或rar,提取APK内的classes.dex到dex2jar的根目录。
最后在CMD 中执行d2j-dex2jar.bat 脚本,如下图所示,输入d2j-dex2jar.bat classex.dex
等待反编译完成即可,完成后会生成对应的classes-dex2jar.jar。
jd-gui查看APK源码
上一步已经完成了APK反编译工作,最后一步就是查看APK的源码。直接打开jd-gui,将生成的classes-dex2jar.jar直接在jd-gui中打开即可。
**反编译工具下载链接 : **http://pan.baidu.com/s/1mi0hI1E
**密码 : **nm03