简述

  • 本文主要介绍下如何破解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是一样的方式。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐