一个APP的包中包含代码文件和资源文件,因此反编译也相应得分为两部分:对资源文件得反编译以及对Java代码得反编译。
资源文件的反编译
Android中对资源文件的反编译一般使用ApkTool这个工具,它可以反编译resources.arsc.9.png和XML等文件,同时它也可以将经过修改的反编译文件重新打包成APK文件
ApkTool的使用
ApkTool安装完成之后,我们可以到应用市场上面随便下载一个Apk文件,重命名为test.apk,在命令行中进入这个文件所在目录,执行命令apktool d text.apk进行资源的反编译,成功的话,我们在APK同级目录中可以得到一个新的目录。
其中包括明文形式的图片资源,布局文件资源,动画资源以及APK的smail文件等,这样我们就可以对这些文件进行分析研究,例如可以知道APK中某个页面是如何布局的,而且我们可以通过修改其中的某些资源文件或者smali文件,然后通过命令apktool b test 重新打包成APK.
Java代码的反编译
反编译Java代码的常用工具是dex2jar,这个工具的输入是APK文件中的classes.dex文件,输出的是一个jar文件,我们把前面的test.apk文件解压后,将其中的classes.dex文件拷贝到dex2jar根目录中,在命令行Terminal中执行如下命令进行字节码的反编译。
完成之后,可以在dex2jar目录得到一个jar文件,我们可以使用JD-GUI来打开它
网友评论