jira插件破解
1. 我们使用jd-jui.exe工具进行反编译,单独提取Version2LicenseDecoder.class文件的source后,需要进行再次编译替换jar包中的原class文件才可以正常破解。
2. 反编译后的java文件中有依赖其他jar文件,其中只有2个,一个是自身的atlassian-universal-plugin-manager-plugin-2.22.x.jar 另外一个是 Base64依赖Apache的commons-codec-1.x.jar,这2个文件都从jira/confulence本身自带的atlassian-bundled-plugins和lib文件夹提取即可。
3. 新建Java工程,名称无所谓,按照修改的Version2LicenseDecoder.java 文件包路径新建包:com.atlassian.extras.decoder.v2,最后把java文件放入此包下。然后把这个java工程添加2个jar依赖即可。此时即可成功编译修改后的Version2LicenseDecoder.java。然后找到工程对应文件下下,有bin文件夹,里面就有编译好的class文件。替换atlassian-universal-plugin-manager-plugin-2.22.x.jar原class即可完成破解。
----------------需要修改的文件及内容-------------------
由于此Version2LicenseDecoder文件static块中带有pubKey,所以不知道是否合适你们。文件版本文atlassian-universal-plugin-manager-plugin-2.22.9.jar,提取自Jira 7.9.2版本中。
Version2LicenseDecoder.java 修改的内容网上有些是错的,Properties无法存入boolean型,所以应该是String,以下是修正后的全部内容。
private Properties loadLicenseConfiguration(Reader text)
{
Properties props = new Properties();
try {
(new DefaultPropertiesPersister()).load(props, text);
if (props.containsKey("Description")) {
String desc = props.getProperty("Description");
props.put("Description",
desc.replace("Evaluation", "Commercial"));
if (desc.contains("Confluence")) {
props.put("conf.LicenseTypeName", "COMMERCIAL");
} else if (desc.contains("JIRA")) {
props.put("jira.LicenseTypeName", "COMMERCIAL");
} else if (desc.contains("FishEye")) {
props.put("fisheye.LicenseTypeName", "COMMERCIAL");
} else if (desc.contains("Bitbucket")) {
props.put("stash.LicenseTypeName", "COMMERCIAL");
}
props.put("Evaluation", "false");
props.put("MaintenanceExpiryDate", "2033-06-06");
props.put("LicenseExpiryDate", "2033-06-06");
}
return props;
} catch (IOException var3) {
throw new LicenseException("Could NOT load properties from reader", var3);
}
}
LicenseManager.java 文件内容修改为:
public boolean hasValidLicense(String licenseKey)
{
return true;
}
编译工程文件及依赖截图:
破解好的文件:https://download.csdn.net/download/huangdou0204/10603421 (含JIRA7.x主程序+通用插件2.22.x破解jar)