War破解还原项目
简述
- 本文主要介绍下如何破解war/jar,并且还原成项目。
下载反编译工具
java的反编译工具使用是JD-GUI,该工具可以查看到代码,并且可以把代码反编译回来。
- 先把工具下载下来 http://java-decompiler.github.io/
- 找到JD-GUI
- 点击Download
- 选择对应的包下载,我的电脑是mac所以选择mac包
- 解压tar包,就可以看到JD-GUI,双击就可以运行
破解war/jar的代码和相关资源
- 准备一个用于的破解的war/jar,我已经事先准备一个wardemo-0.0.1-SNAPSHOT.war,没有war的可以自己创建一个demo生成一个,具体怎么生成这里就不做说明了
- 用JD-GUI打开war/jar,可以看到相关的lib库,class文件和其他的配置文件,如下
- 点击菜单的"File" 里面的 “Save All Sources”, 然后选择指定目录保存zip包,并且把class改成java文件。
- 解压zip,后面需要使用的资源主要是BOOT-INF和META-INFO
还原项目
- 创建一个Springboot的空项目(我是用idea创建的)
- 把META-INF/maven/com.songa/wardemo/pom.xml拷贝并替换空项目里pom.xml,备注com.songa/wardemo是被破解的war的报名和项目项目名,需要根据自己的实际报名和项目名去找
- 把BOOT-INF/classes/com文件夹拷贝到空项目的src/main/java目录下,备注:BOOT-INF/classes/com里面是war的代码
- 把BOOT-INF/classes/其他非代码的文件和文件夹拷贝到src/main/resources,备注:BOOT-INF/classes/目录下除了代码,其他就是项目的配置文件和mapper等文件。
- 如果有依赖本地的lib就需要把lib也加入到项目中,本次破解没有使用本地lib。
- 以上拷贝完成就可以运行代码了,看日志是启动成功。
- 访问之前做的接口 http://localhost:9000/, 成功显示"hello war",已经成功破解。
@RestController
public class MyConroller {
@GetMapping("/")
public String hello() {
return "hello war";
}
}
结尾
- 破解jar和war是一样的方式。