准备工作
我们首先需要下载三样工具:apktool,jd-gui,dex2jar。
反编译获取体育软件源代码
需要用到三样工具:apktool,jd-gui,dex2jar,具体下载链接如下所示
apktool: https://bitbucket.org/iBotPeaches/apktool/downloads/
jd-gui: http://www.ddooo.com/softdown/75946.htm
dex2jar: https://sourceforge.net/projects/dex2jar/
下载完成后解压下来,能得到三个目录,如下所示(另外两个暂且不管,是后面生成的,还有我自己创建的):
然后打开命令行窗口,执行以下命令,注意路经换成自己需要反编译的apk安装包路径:
java -jar apktool_2.6.0.jar d -f C:\Users\86153\Desktop\反编译工具\base.apk -o MMTS
执行完这个命令才能得到上图中的MMTS文件夹,里面的内容如下所示:
其中assets里有许多图片文件,其他文件里还有xml文件,properties文件,yml文件,smali文件,本人主要不是安卓开发端的,对这些文件不是很懂,但是我用visual studio打开它们都可以正常查看,这些文件不是我要关心的,我主要想看这个安装包的java代码,接下来就得用到另外两个工具了:
dex2jar-2.0
将需要编译的apk文件后缀改为.rar或者.zip,解压得到以下内容
别的不关心,我们dex2jar-2.0要用到的只有上图中的classes.dex文件,将获取到的classes.dex放到之前解压出来的工具【dex2jar-2.0】文件夹内,如下图所示
在命令行下定位到dex2jar.bat所在目录,输入"d2j-dex2jar classes.dex",效果如下:
就能得到生成的classes-dex2jar.jar包,我们要查看java代码就看它的了
jd-gui
打开这个工具:jd-gui.exe,然后把jar包拖进去。
当然,用jd-gui查看不方便,你也可以导出成文件夹:File→save all sourse,导出的是压缩包,解压,然后用visual studio打开就能查看了,visual studio读代码真的太好用了
过程中遇到的问题
在打开jd-gui的时候,可能会提示你使用jdk1.7.0的版本,这时候我的解决方法是在环境变量修改成jdk1.7.0,当然首先安装jdk1.7.0在电脑上,这是jdk1.7.0的下载链接:https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html
选择自己电脑的对应版本,我以window 64为例,我安装在之前我的电脑的jdk相同的目录,便于环境变量切换,只需要改下%JAVA_HOME%的路径就可以了。
查看我自己的jdk版本是否切换成功:
成功了,正常打开jd-gui。用完把%JAVA_HOME%换回来就可以了。