DbVisualizer10(破解)+ElasticSearch(x-pack-core-6.4.0破解])整合版

先标记一下, 后面会详细整理:

用DbVisualizer来直接使用ElasticSearch, 第一件事就是破解x-pack-core-6.4.0.

不然你用Dbvis连接es会报错:

dbvisualizer current license is non-compliant for [jdbc]

dbvisualizer current license is non-compliant for [jdbc]

所以别慌,大概思路是这样的:

  1. 找到es中的x-pack-core-6.4.0.jar
  2. 解压x-pack-core-6.4.0
  3. 反编译x-pack-core-6.4.0
  4. 修改证书验证类LicenseVerifier和XPackBuild
  5. 然后重新编译
  6. 替换旧的x-pack-core-6.4.0
  7. 此时elasticsearch失去了验证功能,缺的只有是一个铂金证书
  8. 去官网申请一个basic证书
  9. 修改证书为为platinum证书(铂金版)
  10. 将证书上传到elasticsearch(服务已开启)
  11. 重新用DbVisualizer链接es

 

话不多说,直接上方法,下面的破解原文是来自大菜菜的博客, [原文链接], 我这里稍作修改

你可直接下载我已经破解的x-pack-core-6.4.0.jar

点击下载破解包: x-pack-core-6.4.0.jar

点击下载dbvis驱动:x-pack-sql-jdbc-6.4.0.jar

步骤一:破解x-pack-core-6.4.0

下载 elasticsearch
下载页面:https://www.elastic.co/downloads/elasticsearch

下载下来,解压压缩包,x-pack-core-6.4.0.jar 就位于 elasticsearch-6.4.0/modules/x-pack-core 目录下面

使用luyten反编译x-pack-core-6.4.0.jar

下载 luyten
下载页面:https://github.com/deathmarine/Luyten/releases

软件下载下来,打开软件,把x-pack-core-6.4.0.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.io.*;
import java.net.*;
import org.elasticsearch.common.*;
import java.nio.file.*;
import java.io.*;
import java.util.jar.*;

public class XPackBuild
{
    public static final XPackBuild CURRENT;
    private String shortHash;
    private String date;

    @SuppressForbidden(reason = "looks up path of xpack.jar directly")
    static Path getElasticsearchCodebase() {
        final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation();
        try {
            return PathUtils.get(url.toURI());
        }
        catch (URISyntaxException bogus) {
            throw new RuntimeException(bogus);
        }
    }

    XPackBuild(final String shortHash, final String date) {
        this.shortHash = shortHash;
        this.date = date;
    }

    public String shortHash() {
        return this.shortHash;
    }

    public String date() {
        return this.date;
    }

    static {
        final Path path = getElasticsearchCodebase();
        String shortHash = null;
        String date = null;
        Label_0157: {
            shortHash = "Unknown";
            date = "Unknown";
        }
        CURRENT = new XPackBuild(shortHash, date);
    }
}

可能你的版本没有Label_0157标签, 那么就是这样

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文件

原文写的是:

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

我使用的是:

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
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文件放到我们目录里面,替换老的。

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

导入授权文件

1、 先从官网申请basic授权文件
https://license.elastic.co/registration

注意邮箱要正确,地区写中国,保证能收到邮件,然后从邮箱里面的链接获取basic证书

2、 授权文件修改

原始证书:

{
  "license": {
    "uid": "9f9443d7-f48f-4141-a7df-551dd7868e0d",
    "type": "basic",
    "issue_date_in_millis": 1536105600000,
    "expiry_date_in_millis": 1567727999999,
    "max_nodes": 100,
    "issued_to": "Li Si (MYHONE)",
    "issuer": "Web Form",
    "signature": "AAAAAwAAAA2OamcbwjbOtF7/y1QJAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1XXXXlZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBAXDSpRK5vJaJ4DduuK35/flhEXes5cCAKJ40rIkR0kDx9Nd5ZaiIxiEXQLbpT2ZG5H6znytn1/BITYvP9pOZsDgZBK7hL32UPC4j8Lar05A009NDIX8Tp0bhHT0iFB4dvYGmE3eZpgAoKD5FvRRsM9YuS3bUyMhVJwCdJqi2g6GfD2MTywEXSj+2CNMv5gUCMa2CM2x2Z+iIx+FbbpSpnsk4F3jqr+U83i1Fpkitv+ZSSSOD6yWc692MHFUBVGnTDW5vkxp+gMK6RK30kvZvmobOjqUvgaXbBPav7DEW1EGpfgXsdsMbZ6ZzvmF28tPUHpZxb4jUbHDjHRCggNXXB",
    "start_date_in_millis": 1536105600000
  }
}

时间戳、时间转换工具:https://tool.lu/timestamp

修改expiry_date_in_millis(到期日期,我写的2050年)后的证书:

platinum表示白金版,可以使用所有功能

{
  "license": {
    "uid": "9f9443d7-f48f-4141-a7df-551dd7868e0d",
    "type": "platinum",                        # 修改授权为白金版本
    "issue_date_in_millis": 1536105600000,
    "expiry_date_in_millis": 2546011910000,    # 修改到期时间      
    "start_date_in_millis": 1536105600000,
    "max_nodes": 100,
    "issued_to": "Li Si (MYHONE)",
    "issuer": "Web Form",
    "signature": "AAAAAwAAAA2OamcbwjbOtF7/y1QJAAABmC9ZN0hjZDBGYnVyRXpCOW5Bb3FjZDAxOWpSbTVoMVZwUzRxVk1PSmkxaktJRVl5MUYvUWh3bHZVUTllbXNPbzBUemtnbWpBbmlWRmRZb25KNFlBR2x0TXc2K2p1Y1VtMG1UQU9TRGZVSGRwaEJGUjE3bXd3LzRqZ05iLzRteWFNekdxRGpIYlFwYkJiNUs0U1hTVlJKNVlXekMrSlVUdFIvV0FNeWdOYnlESDc3MWhlY3hSQmdKSjJ2ZTcvYlBFOHhPQlV3ZHdDQ0tHcG5uOElCaDJ4K1hob29xSG85N0kvTWV3THhlQk9NL01VMFRjNDZpZEVXeUtUMXIyMlIveFpJUkk2WUdveEZaME9XWitGUi9WNTZVQW1FMG1XXXXlZ4NTltbU1CVE5lR09Bck93V2J1Y3c9PQAAAQBAXDSpRK5vJaJ4DduuK35/flhEXes5cCAKJ40rIkR0kDx9Nd5ZaiIxiEXQLbpT2ZG5H6znytn1/BITYvP9pOZsDgZBK7hL32UPC4j8Lar05A009NDIX8Tp0bhHT0iFB4dvYGmE3eZpgAoKD5FvRRsM9YuS3bUyMhVJwCdJqi2g6GfD2MTywEXSj+2CNMv5gUCMa2CM2x2Z+iIx+FbbpSpnsk4F3jqr+U83i1Fpkitv+ZSSSOD6yWc692MHFUBVGnTDW5vkxp+gMK6RK30kvZvmobOjqUvgaXbBPav7DEW1EGpfgXsdsMbZ6ZzvmF28tPUHpZxb4jUbHDjHRCggNXXB",
  }
}

 

3.上传证书到elasticSearch

注意:这里你可能上传失败,碰到:Cannot install a [PLATINUM] license unless TLS is configured or security is disabled,

需要去修改elasticsearch.yml,在最后加上

xpack.security.enabled: false

记得在上传证书的过程之前保证开启elasticsearch服务

3.1 可以通过API接口上传

curl -u elastic:elastic -XPUT ‘http://es-ip:port/_xpack/license’ -H “Content-Type: application/json” -d @/tmp/license.json

或者不适用账号密码

curl -XPUT 'http://xx.xx.xx.xx:9200/_xpack/license?acknowledge=true' -H "Content-Type: application/json" -d @abc.json

3.2 也可以直接通过post方法

http://127.0.0.1:9200/_license?acknowledge=true

or

http://你服务器ip:9200/_license?acknowledge=true

 

直接把修改的证书post过去,我用的postman工具

 

步骤二:

下载DbVisualizer10.0破解版,网上有很多,随便找一个 

然后连接elasticsearch就可以完整的适用了

Dbvis怎么连接elasticsearch可以参考 : https://elasticsearch.cn/article/687

下载DbVisualizer10.0可以用这个 链接:https://pan.baidu.com/s/1EzgzrKId7A8g-6Nr3BEB4A  密码:hbpm

 

 

其他参考:

https://www.jianshu.com/p/76abe4419465

https://www.xiaocaicai.com/2018/08/28/x-pack-6-4-0-%E7%A0%B4%E8%A7%A3/

https://blog.csdn.net/zsj777/article/details/80715790

http://www.cnblogs.com/hts-technology/p/9282421.html

DBVisualizer 10 mac 10.0.14是一款适用于Mac操作系统的数据库管理和开发工具。它提供了丰富的功能和工具,可以管理和操作多种不同类型的数据库。 首先,DBVisualizer 10 mac 10.0.14支持与多种常用的数据库类型进行连接和交互,包括Oracle、MySQLSQL Server、PostgreSQL等。用户可以通过该工具连接到这些数据库,并进行数据的查询、编辑和管理操作。同时,它还支持SQL语句的编写和执行,可以实现复杂的数据查询和操作。 其次,DBVisualizer 10 mac 10.0.14具有直观的用户界面,使用户能够方便地浏览和操作数据库。它提供了一个显示数据库结构的导航树,在这个导航树中,用户可以查看数据库中的表、视图、存储过程和触发器等对象。用户可以通过简单的拖放操作,将这些对象添加到查询编辑器中,进行相应的查询和操作。 此外,DBVisualizer 10 mac 10.0.14还提供了一些实用的工具和插件,帮助用户更好地进行数据库管理和开发。比如,它提供了一个数据导入/导出工具,可以快速地将数据导入到数据库中或从数据库中导出数据。它还支持数据字典的生成和导出,方便用户对数据库结构进行审核和文档化。 总的来说,DBVisualizer 10 mac 10.0.14是一款强大而实用的数据库管理和开发工具,适用于Mac操作系统。它提供了丰富的功能和工具,方便用户进行数据库的查询、编辑和管理操作,并具有直观的用户界面和实用的工具,提高了用户的工作效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值