网上相关的文章一大堆了,我只是总结下自己的反编译方法和工具
工具下载地址:
http://yunpan.cn/QpE2ehm3Xamc6
下载上面的三个工具的压缩包
- Apktool_v1.5.1_CHS_By_b-sf.rar
- dex2jar.zip
- jd-gui-0.3.5.windows.zip
解压 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 或其他软件中生成新的项目,这样分析源码就方便些了
另外 Android 初学者可加入我的360文件共享群:Android,
打开邀请链接:http://qun.yunpan.360.cn/38063538 ,输入邀请码:1267
里面全都是我和其他网友收集的 android 和 java 相关的资料、教程、软件等等