记一次破解Springboot Java项目授权过期问题

从网上下载的一个商业的MQ程序启动报错授权过期,简单破解了下绕过了授权认证。 使用到工具与命令,jd-gui、recaf、jdk自带的jar命令。

破解过程

  1. 启动了下该MQ的startup.sh文件,启动日志报错。可以看出是com.primeton.ext.common.l72.Imprimatur.validate()验证失败了。 image-scuj.png

  2. 使用从startup.sh文件中找到该MQ的jar包,使用jd-gui.exe打开了该jar包,可以查看目录知道jar包是springboot技术开发并打包的。找了在lib目录的一个jar下面。 image-vvel.png

  3. 使用jdk自带的jar命令解压包。

jar -xvf mq.jar
  1. 使用recaf在打开BOOT-INF/lib/验证jar包,破解方法很简单,修改jar包中的com.xxx.ext.common.l72.Imprimatur.validate()方法,直接使用recaf工具,选中validate方法右键使用编译汇编代码功能。在该校验方法中加入下面ICONST_1,IRETURN方法,相对于直接返回return true。 image-nlpe.png
  2. 修改后使用recaf导出功能,把改好的class文件重新生成jar包,然后替换原来的jar包。
  3. 使用jar重新打包未springboot可执行程序。打包成功后可以再通过jd-gui.exe反编译查看下,是否都修改成功了。
jar -cfM0 mq.jar BOOT-INF/ META-INF/ org/
  1. 重新执行启动MQ程序的startup.sh启动脚本,查看日志输出,发现已绕过授权成功启动。
文章作者: 编程之家
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 编程之家
逆向与安全 recaf
喜欢就支持一下吧