有时对于一些APK,对于一些功能上的实现我们很想了解,这时候就可以通过反编译的方式来查看他的源码。由于经常会做这部分工具,所以把整个过程记录下来,方便以后查看,下来反编译操作的过程:
首先需要下载所需的工具,这个可以到我的资源下载:http://download.csdn.net/detail/chencangui/8473399。
首先可以通过apktool工具来获取资源文件,操作步骤:
a、命令行下定义到apktool所在的文件夹,执行命令:
apktool.bat d -f e.apk test(其中,也即apktool.bat d -f 你的apk名称 希望存在的文件夹)
结果如下:
此时在你的apktool文件夹目录下会有多一个文件夹,里面就是反编译得到的资源,图片、XML等文件。这时源代码还不能查看到。(注:如果要反编译的APK的方法数太多,可能出现失败的情况)
想要查看源代码,需要用到刚才下载的另外两个工具,dex2.jar和jd-gui。操作步骤:将要反编译的APK的后缀名改成.zip。解压,拿到里面的classes.dex文件,并把它放在dex2jar-0.0.9.15文件夹下,命令行模式定位到该目录下,执行dex2jar.bat classes.dex,结果如下:
此时可以使用jdk-gui打开所得到的class_dex2jar.jar文件。
反编译工作就完成了,这时候就看你基于什么需要去找什么了。
另外,对于一些方法数比较多的apk此方法可能会失败,下面介绍另外一个工具----Android逆向助手。此工具的使用比较简单,直接Browser想要反编译的APK即可。此时所获得的资源文件还有xml文件都是比较完全的,但是对于得到的源代码文件都是smial格式的,此时还需要另外一个工具来查看---smail2Java来查看,不过只能逐个文件来查看,有点麻烦。当然,这个工具也可以用来反编译APK查看java源代码(不能拿到资源文件)。