破解正文

elk的x-pack需要破解才能使用

首先先正常安装x-pack

$ELASTICSEARCH_PATH/bin/elasticsearch-plugin install x-pack

下载对应版本的x-pack文件, 解压x-pack文件

wget '[<https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip>](<https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.2.3.zip>)'
unzip x-pack-6.2.3.zip 

进入elasticsearch/core目录,找到x-pack-core-6.2.3.jar

需要使用luyten反编译 ( luyten项目地址: https://github.com/deathmarine/Luyten )

使用luyten打开后找到两个class文件,分别为 org.elasticsearch.license.LicenseVerifierorg.elasticsearch.xpack.core.XPackBuild

新建两个文件,分别为 LicenseVerifier.java 和 XPackBuild.java, 将反编译后的代码写入文件中

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

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

修改完成之后执行命令进行编译

需要引入 elasticsearch 6.2.2 中 lib 目录下的jar包 以及 x-pack-core-6.2.2.jar 本身

javac -cp "$ELASTICSEARCH_PATH/lib/*:$ELASTICSEARCH_PATH/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" LicenseVerifier.java

javac -cp "$ELASTICSEARCH_PATH/lib/*:$ELASTICSEARCH_PATH/plugins/x-pack/x-pack-core/x-pack-core-6.2.3.jar" XPackBuild.java

创建x-pack-core用来存放解压之后的jar包文件 mkdir x-pack-core

把上面找到的jar文件放到x-pack-core中

cp x-pack-core-6.2.3.jar ./x-pack-core
cd x-pack-core
jar xvf x-pack-core-6.2.3.jar

解压之后将上一步编译完成的class文件覆盖到jar文件中,重新打包,替换原来的jar包