一、用Apktool反编译和编译的方法
评价:它仅将DEX文件反编译成Smali源码;XML文件能生成明码格式,且较好!
在命令行下,定位到apktool.bat文件夹,用以下命令进行反编译!
命令格式:apktool.bat d -f[apk文件] [输出文件夹]
比如:apktool.bat d -f SerialPort.apk SerialPort
将反编译完的文件重新打包成apk,也很简单!
命令格式:apktool.bat b[反编译输出的文件夹]
比如:apktool.bat b SerialPort
二、反编译Apk得到Java源代码(windows)
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行
dex2jar.bat classes.dex
生成
classes.dex.dex2jar.jar
2.dex2jar反编译(mac下)
1)将apk文件后缀名直接改为.zip,并解压。得到其中的classes.dex文件 ,它就是java源代码经过编译再通过dx工具打包而成的。
2)将classes.dex文件复制到dex2jar所在的文件夹。
3)命令行下定位到dex2jar目录,运行
sh dex2jar.sh classes.dex
生成 classes_dex2jar.jar
用jd gui打开就可以看到源代码了。