下载下面的三个工具的压缩包 , 下载地址:http://download.csdn.net/detail/a11101171/7275953
- Apktool_v1.5.1_CHS_By_b-sf.rar (将除了java以外的xml等文件反编译出来)
- dex2jar.zip(将classes.dex弄成jar包,包里就是java的源代码)
- jd-gui-0.3.5.windows.zip(查看jar包里的java类,并能导出.ava的源文件)
一、反编译 xml 等模版资源文件。
解压 apktool 包,然后将你要反编译的 apk 文件拖放到 ApkModify.bat 文件上就自动反编译了,这个包自动继承了一些反编译功能,但对 java 文件可能不行,
我用的 Lofter 网易轻博做了个实验,classes.dex 被反编译成了 smali 类型文件。
二、反编译 java 文件
解压 dex2jar.zip 包
将 .apk 文件的后缀名改为 .zip 并解压,进入 dos 命令行模式,一路进入 dex2jar 包的目录执行dos命令:
dex2jar D:\apks\Apktool\lofter\classes.dex
后面的路径参数当然要修改成你的 apk 文件解压后的该文件路径哦
几秒钟编译完后会生成 classes_dex2jar.jar 包文件
三、查看并导出 java 源码
解压 jd-gui 包,执行 jd-gui.exe 程序,打开第二部生成的 classes_dex2jar.jar 文件,此时就可以浏览反编译后的源码了(当然不是最初的源码,变量名神马之类的都是 a, b,c 代替了,阅读起来比较艰难)
打开软件的 file 菜单,点击 save all sources 将导出所有源码为 .java 源文件
再将该 java 源文件目录覆盖到第一部 生成的目录下就可以完整的导入到 android studio 或其他软件中生成新的项目,这样分析源码就方便些了