电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1417 人浏览分享

记录一次对Confluence插件的破解

[复制链接]
1417 0
本帖最后由 zhaorong 于 2021-10-26 17:55 编辑

记录一次对Confluence插件的破解

这是一款基于Confluence开发的水印插件。

源码获取

你可以通过Confluence的Marketplace下载到插件,插件是obr格式的 没见过 但经验熟悉的一般都知道这种
插件包直接以压缩包格式打开即可(或者你可以用binwalk来看看)

043045ge80lllal2geafss.png

使用压缩包格式打开,发现存在Jar文件。直接把Jar文件拖出来分析/破解。

分析/破解过程

使用Luyten这个工具反编译获取代码直接进行分析,由于没写过Confluence插件所以不知道入口
在哪(懒得翻文档)直接找类似于配置文件去看下。找到一个atlassian-plugin.xml文件:

043055on5i8f9f3egqmmw4.png

根据这文件内容的大概意思便知道这就是插件功能实现的地方,接着在反编译的代码中继续跟进即可。
不过在这里我没有看具体代码,直接全局搜索license、key、valid等关键词寻找关键方法这里发现hasValidLicense
函数被其他地方调用,根据中文意思。也能猜出这是校验程序许可证是否有效的地方:

69.png

所以我们可以直接入手修改这个函数的返回值。可以看见该函数是返回布尔类型的所以
在这里我们可以将函数的返回值修改为:
  1. return true;
复制代码

这样在理论上就可以让所有的许可证都过校验也就完成了破解的整个步骤。
但这都只是停留在理论层,我们需要付诸于行动,你可以选择导出源码然后进行修复 修改 打包...但是为了图方便
我打算借助工具jbytemod直接修改字节码的方式进行修改,但是在这里,我不了解Java字节码的语法为了节约时
间直接以源码对照字节码的方式来现场看一下。

首先我们要知道return true;的字节码是什么 所以我们可以先直接全局搜索就可以找到代码中已经实现的方法:

68.png

然后再使用jbytemod找到对应的字节码片段即可:

66.png

这时候再多看几处相同的代码你就会发现这段字节码就对应着return true;:
  1. iconst_1
  2. ireturn
复制代码

所以我们按照这个格式替换掉hasValidLicense函数的字节码即可:

63.png

62.png

最后保存到Jar文件,并替换原Jar文件到obr文件中即可(压缩包替换的方式)。

导入插件

接着我们需要验证下当前的破解是否成功 首先访问自己的Confluence平台导入修改好插件其次
随便输入一段认证码内容,最后发现输入完成之后即可直接使用该插件的全部功能:

61.png

综上所述 我们幸运的完成了这一次的破解。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.