Elasticsearch6.5.2 X-pack破解及安装教程

时间:2023-01-28 19:13:10

先正常安装 elasticSearch, kibana。

1. 如果是6.5.2版本,可以直接下载jar文件:https://download.csdn.net/download/bigben0123/10932740。跳过此步。

重写x-pack下的2个类:LicenseVerifier.java和XPackBuild.java

直接拿走重写完的类链接: https://pan.baidu.com/s/1ESqoZW8eieO7Zdgs31hxsQ 密码: uqnd

覆盖流程

1.用zip软件打开 找到的目标jar包 elasticsearch-6.5.2\modules\x-pack\x-pack-core\x-pack-core-6.5.2.jar。
2.用LicenseVerifier.class 覆盖x-pack-core-6.5.2.jar\org\elasticsearch\license目录下的同名文件
3.同理用 XPackBuild.class 覆盖 x-pack-core-6.5.2.jar\org\elasticsearch\xpack\core 目录下的同名文件

直接保存成新的jar。替换以前的即可。

2. 在elasticsearch.yml 中 添加一下配置

xpack.security.enabled:false

重启elasticsearch

3. 在kibana的左边菜单 Management-> Licence -> apply trail license。等待几个小时后收到 license,修改如下两项:

"type":"platinum","issue_date_in_millis":1548115200000,"expiry_date_in_millis":3107746200000

4,在kibana的左边菜单 Management-> Licence ->update license即可。

参考:

https://www.plaza4me.com/article/20180825223849878 靠谱

https://www.jianshu.com/p/6acfeabb44f8?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

https://www.jianshu.com/p/1ff67bb363dd

https://blog.csdn.net/q258523454/article/details/82426837


破解原理:

用Luyten 反编译x-pack-core-6.5.2.jar文件。Luyten下载地址:https://github.com/deathmarine/Luyten/releases/tag/v0.5.3。

软件下载下来,打开软件,把x-pack-core-6.5.2.jar 丢进去,就能看到我们jar包的源代码了。
我们需要把2个文件提取出来进行修改。
org.elasticsearch.license.LicenseVerifier
org.elasticsearch.xpack.core.XPackBuild

1、修改LicenseVerifier
LicenseVerifier 中有两个静态方法,这就是验证授权文件是否有效的方法,我们把它修改为全部返回true.

package org.elasticsearch.license;

import java.nio.*;
import org.elasticsearch.common.bytes.*;
import java.util.*;
import java.security.*;
import org.elasticsearch.common.xcontent.*;
import org.apache.lucene.util.*;
import org.elasticsearch.core.internal.io.*;
import java.io.*; public class LicenseVerifier
{
public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) {
return true;
} public static boolean verifyLicense(final License license) {
return true;
}
}

2、修改XPackBuild
XPackBuild 中最后一个静态代码块中 try的部分全部删除,这部分会验证jar包是否被修改.

package org.elasticsearch.xpack.core;

import org.elasticsearch.common.SuppressForbidden;
import org.elasticsearch.common.io.PathUtils; import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Path; public class XPackBuild {
public static final XPackBuild CURRENT;
private String shortHash;
private String date; static {
String shortHash;
String date;
shortHash = "Unknown";
date = "Unknown";
CURRENT = new XPackBuild(shortHash, date);
} @SuppressForbidden(reason = "looks up path of xpack.jar directly")
static Path getElasticsearchCodebase() {
URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
try {
return PathUtils.get(url.toURI());
} catch (URISyntaxException bogus) {
throw new RuntimeException(bogus);
}
} XPackBuild(String shortHash, String date) {
this.shortHash = shortHash;
this.date = date;
} public String shortHash() {
return shortHash;
} public String date() {
return date;
}
}

编译修改后的java文件

原文写的是:

  1. javac -cp ".:./x-pack-core-6.3.2.jar:./elasticsearch-6.4.0/lib/*" LicenseVerifier.java
  2. javac -cp ".:./x-pack-core-6.3.2.jar:./elasticsearch-6.4.0/lib/*" XPackBuild.java

我使用的是:

  1.  
    javac -cp "/Users/mac/Documents/elasticsearch-6.4.0/modules/x-pack-core/x-pack-core-6.4.0.jar:/Users/mac/Documents/elasticsearch-6.4.0/lib/*" LicenseVerifier.java
  2.  
    javac -cp "/Users/mac/Documents/elasticsearch-6.4.0/modules/x-pack-core/x-pack-core-6.4.0.jar:/Users/mac/Documents/elasticsearch-6.4.0/lib/*" XPackBuild.java

需要注意的是,编译这两个文件的时候 需要指定依赖包的位置 如果你的位置和我的有区别,注意修改。

将编译好的class文件重新压回x-pack-core-6.4.0.jar

解压x-pack-core-6.4.0.jar 会得到一个 x-pack-core-6.4.0目录,按照其位置将编译好的2个 class文件放到我们目录里面,替换老的。

    1. 直接用命令即可
    2. [unjar] jar -xvf abc.jar
    3. [jar] jar cf abc.jar input-files