第一步:war -> jar
1、将war包解压缩
2、创建目录,层级与.java文件包名一致,把.class文件移到该目录下(如果路径名与包名不一致,转dex操作会报错)
3、用jdk/bin目录下的jar命令, jar cvf 生成.jar class目录或class文件,得到jar文件
第二步:class -> dex
需要工具:
Android Build-Tools&SDK tools
下载地址:
https://www.androiddevtools.cn/
需要将下载好的build-tools解压放到adroid-sdk-windows文件夹下
4、用Android sdk/build-tools下的命令dx --dex --output=destFile_dex.jar destFile.jar得到包含.dex类型的jar包
5、把后缀jar改为zip进行解压后取得class.dex文件
第三步:dex -> smali
工具:baksmali
下载地址:
https://bitbucket.org/JesusFreke/smali/downloads/
6、运行jar包 baksmali disassemble classes.dex -o 输出路径 , 得到包含smali文件的文件夹
第四步:修改smali中的数据库信息
第五步:smali -> dex
工具:smali
下载地址:https://bitbucket.org/JesusFreke/smali/downloads/
git项目地址:https://github.com/JesusFreke/smali
7、运行jar包 smali assemble smali文件夹 -o classes.dex , 得到classes.dex文件
第六步:dex -> class
工具:dex2jar
下载地址:https://sourceforge.net/projects/dex2jar/
8、使用命令d2j-dex2jar.bat classes.dex得到修改后的jar包
第七步:修改后缀为zip解压出来,使用jd-gui查看修改结果
工具:jd-gui
下载地址:http://java-decompiler.github.io/
将class文件拖入jd-gui查看
========================================
各格式间转换汇总:
https://www.52pojie.cn/thread-977409-1-1.html
https://www.jianshu.com/p/504e94353ae0
smali/baksmali Expected a command 报错的解决:
https://blog.csdn.net/qq_30478929/article/details/79286859
https://github.com/JesusFreke/smali/wiki/SmaliBaksmali2.2