Hello , 今天来讲讲何为反编译 , 以及为何我们需要反编译?
首先反编译顾名思义就是编译的逆向,当然你也可以理解为"逆向编译" , 举个简单的例子,你看到了一款界面布局制作精美的app,你想知道这是怎么实现的, 这个时候你就可以使用反编译的技术来得到它的界面布局和代码文件来参考学习. 当然了是建立在app没有任何加密加固的基础之上,否则你的翻译结果可能就是一堆乱码.
接下来就进入正题 , 使用apktool来进行我们的反编译
首先贴上我们的apktool的下载地址 :
https://download.csdn.net/download/gsrkuang/10575743
第一步:
下载完成后会得到图下的两个文件 , 我们只需要把两个文件拷贝到C:\Windows这个目录下即可
(至于为什么要拷贝到这里,理由的此目录已经配置好了环境变量)
第二步:
打开cmd输入apktool d apk所在位置 -o 反编译后apk工程输出位置
参考下图
反编译完成后会出现如下图
这里要注意一下命令-o后面输出的路径目录会自动的生成所以不需要手动去新建文件夹,这样反而会造成反编译不成功
反编译成功后的目录如下图
注意到这一步我们已经成功的进行了反编译了 !! 上面的工程结构是不是有点熟悉的感觉?没错就是我们Android工程里面的结构,assets lib res AndroidManifest.xml , 等一下怎么我们的src目录变成了smali了 , 点进去以前的java文件都变成了.smail结尾的文件了? 没错下一篇我们将会继续讲解如何查看.smali文件的中的java代码