在我们平时逛一些技术论坛的时候,经常会遇到类似反编译,代码混淆等等名词,大家一定觉得很高大上吧,下面我就来介绍下,到底反编译有多难。
反编译工具
反编译需要的工具一般包含下面几个:下载地址 访问密码 eba5
- apktool (用于资源文件获取)
- dex2jar(用于源码文件获取 .dex文件转.jar文件)
- jd-gui (用于源码查看 打开.jar文件)
关于这三个工具的用法就不在多说了,网上已经有很多的说明。这里我推荐一个图形化的工具,其实就是将上面三个打包加了一个界面而已,不过方便了很多,毕竟不用敲命令了。下载:ApkToolBox_1.4 访问密码 94a6
查看Apk内容
首先我们得知道,apk文件其实是一个压缩文件,我们使用解压软件解压可以看到如下目录,是不是觉得很眼熟?res目录下就是apk中使用的布局文件等,classes.dex就是src里面的源码编译后的结果,当然,如果我们现在肯定是打不开classes.dex文件的,res目录下的布局文件肯定也是乱码。如下图。如果能直接打开那就不需要工具了。
反编译工具用法
这里以ApkToolBox为例,查看一款图书馆座位预约系统的apk。
获取布局文件
软件主界面,选择第一项反编译apk,就相当于使用apktool获取出布局文件。选择文件保存位置,点击确定。
当提示完成以后,就可以查看刚才选择的路径,这时点开res/下的布局文件就不会是乱码了。
classes.dex转jar包
上面已经说到了,源码文件编译以后放在classes.dex文件中。将apk解压以后即可得到这个文件,还是这个工具,选择dex转jar,选择导出jar包的保存路径,即可将classes.dex转为jar包。
查看jar包源码
同样的,点击打开jar即可查看jar包源码。如下我们可以看到,这款app的源码并没有混淆,所以我们可以很清楚的看到其源码。
希望大家仅将工具作为学习所用。