DBeaver Ultimate 激活方法分享

https://www.52pojie.cn/thread-1668629-1-1.html

上面的大佬提供了生成公钥私钥的源码和解析了原理和步骤的

大致步骤如下:

  1. 替换plugins下面 com.dbeaver.app.ultimate_*.jar zip包里面keys目录下的公钥(dbeaver-ue-public.key),
  2. 修改dbeaver.ini开启-Dlm.debug.mode=true
  3. 将私钥(private-key.txt)放到 ~/.jkiss-lm 目录下,使用假的序列号(license.txt)即可激活。

jkiss-lm.zip (2.8 KB)

仅供研究学习使用,请勿用于非法用途,请支持正版!


更新了下附件,License文件少了个=


更新下C#代码替换证书,添加配置

using System.IO.Compression;

const string privateKeyString =
    """
    MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCFfG6J3YAt9IXrzJSsfQfd7Z4n
    RL0x8m5WKXWvTcz8ldO7kWCNPJR/VDkomddItrGKJu0eMAlRdGTXQL2KSzsUU144/x2IMvYpxs9N
    J3LuJqkJgBrFmKUhEirQBv9mGL4fA+H3C4mT/pcSChQgLV6IqPRpUzPbkbm51ce0jHw6Nq8fZ6gV
    2U6kPCbpkyPVlJuRjnRyc5vp4m/fygoXx8vhveLcnS+/mWT3Q1ilVIYXA+z1LYA2xZPUJdd+XfBA
    64Ec58spOgk31Xl+oyCICg81PwG87k0wwnx30wpAPiu2qrdLjQTuIhn983nWH+RDTKcIdd2x3N7j
    yND6q5KyJ8dPAgMBAAECggEATJu5JM5GfhlTspxaxxOKrEdu+MJugnfL8w8gR1ezSVMDjSZF70jR
    QLIpi6+e6lBPXCYy95xB/Ml8Bj1VikTaxzOBY9ymKkB1HkzHNFRrlVoCsT0gID8WpgAzKeiaMxII
    KuyjhpDMiG8YbHX0TvM6yduNSdVCccUUfh6+2lO2CAH1fRT+FJqEI8tUGbuB16YvM6t/mNjtbOo1
    dSsRacc/7fV3vPP7a3kqc0PHpIDAyuKcLWn1HwEzBeAgp/TlX9J1bU8WcijKQBLcrxYmxAqDZOPD
    imcV0XfKs6I2JUHEePUHiAoG59BhVGA/rJnkyQEpaD3mKkFImIIKm6poLvzboQKBgQD1iLWE4gKe
    g/5TUAFO/aMhiMQG3vP410eBoWHZnvQt72VKX6hlgGwvZld1UF7hqljK1ICvvwFe2aGWDJAk5Zz5
    0ipPj1UVkk5FsLoi/YT3Pj8tsNT0xJrilXDlpYAEsecbqvBs5QBGBKH+4QkFoCvCb6qWuDWQMNYJ
    Ja/Su97nLQKBgQCLLQtqRutmw96XzkfV9yuqQ9nzk7Z7CfM00O4l0jP0tKTXomuSW1nRiYc3UfZJ
    cJfPR91y40N4v7A8DaiReH5T5F6Mt6gnnSmRt/J6vE5tz3lODnoaUVOmjEpj7ytQdtr2xUYNOnEu
    oRH2lPkhUdIBM35EfySpKBu7yWfc3ap16wKBgQDGZzKububI6kWvUp3ME34nUdl859njASph4GMu
    M5iCKckCgSuU4WIKJzuSq2AQH9NiCrb1zHUyDM/abMppVjUzVZUk9uA87x1aiQTP02YHV4A7zoE2
    TEwPvcwddU9t+8eQ/t8KTz2aVpIEYBknN5dEpXEGG1IE8sFxYMejlHX4/QKBgECo/NSzfkqQVapR
    vC48V50TSP9RcUZYqRWwu/P2ZQ0boDpOy4uDxYcETj31ZmdYWC+FQ+1MiNxgspA0CE0NniN7xjG6
    YfWFnvqEa7N6KTX7XnBVaYUwo5yNMUKcq5MGpVRg8trSfCMd0iqtq9E/IkJMmi1YpL+yUrA8MnT6
    x2dhAoGBALSWWmS3fBhUi55YwnmxMGcZKRw3SR4qvgfMVsXx/wraLg6HdHYv5eugQ5JimqlAw6Bv
    B6EIBnhrWT41s1uLkVrD3bYvOT5dKlgHmNUuosZdTkAZQAptiPq0tNnXJ5N++4NIf4vmTgbC4OhG
    b5eH0TuNW8cBSErqYoCf/tVrjVTq
    """;
const string publicKeyString =
    """
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhXxuid2ALfSF68yUrH0H3e2eJ0S9MfJu
    Vil1r03M/JXTu5FgjTyUf1Q5KJnXSLaxiibtHjAJUXRk10C9iks7FFNeOP8diDL2KcbPTSdy7iap
    CYAaxZilIRIq0Ab/Zhi+HwPh9wuJk/6XEgoUIC1eiKj0aVMz25G5udXHtIx8OjavH2eoFdlOpDwm
    6ZMj1ZSbkY50cnOb6eJv38oKF8fL4b3i3J0vv5lk90NYpVSGFwPs9S2ANsWT1CXXfl3wQOuBHOfL
    KToJN9V5fqMgiAoPNT8BvO5NMMJ8d9MKQD4rtqq3S40E7iIZ/fN51h/kQ0ynCHXdsdze48jQ+quS
    sifHTwIDAQAB
    """;
const string licenseString =
    """
    ReJalXttbssteHQ63re1sGcW2XbP4emJiJxLGaa/JEXXcRiuUzwfwAHh5gUWD+blYrIVKy4Ibx9k
    xm6XcIlg4X1eWI4UrlTep+D5l2cKSqw63Hzi8hyau8H9OFfPe9PHig1Kla+u4fQCkn7AidqZPkV7
    QVK2F++ZIUcPmc+qEkm3suOEtRgEKKBfsZpHTg+CUrUb37DlEz6qWnOI+5hy95B3z892TTJzkARc
    HOhSdFM/1/q4WMUtfjcVcav7x7qiFDIfuWQsMNASVMxBJtbKsKv9tqc+2ExGV+9bZBHls7JehGOW
    bG7YOpoZA49Ha6DnWlhoWAeFizL6zFLbH8+tZQ==
    """;

var userFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
var lmFolder = Path.Combine(userFolder, ".jkiss-lm");
if (!Directory.Exists(lmFolder))
{
    Directory.CreateDirectory(lmFolder);
}

File.WriteAllText(Path.Combine(lmFolder, "private-key.txt"), privateKeyString);

var programFiles = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
var dbeaverFolder = Path.Combine(programFiles, "DBeaverUltimate");
var pluginsFolder = Path.Combine(dbeaverFolder, "plugins");
const string jarPattern = "com.dbeaver.app.ultimate_*.jar";
var jarFile = Directory.GetFiles(pluginsFolder, jarPattern).FirstOrDefault();
if (jarFile == null)
{
    Console.WriteLine($"Jar file not found: {jarPattern} in {pluginsFolder}");
    return;
}

Console.WriteLine($"Update public key file in {jarFile}");
using var zipArchive = ZipFile.Open(jarFile, ZipArchiveMode.Update);
const string publicKeyFileName = "dbeaver-ue-public.key";
const string publicKeyFileEntryName = $"keys/{publicKeyFileName}";
var publicKeyFileEntry = zipArchive.GetEntry(publicKeyFileEntryName);
if (publicKeyFileEntry == null)
{
    Console.WriteLine($"Entry not found: {publicKeyFileEntryName}");
    return;
}

using var publicKeyStream = publicKeyFileEntry.Open();
using var publicKeyStreamWriter = new StreamWriter(publicKeyStream);
publicKeyStreamWriter.Write(publicKeyString);

var dbeaverIniFile = Path.Combine(dbeaverFolder, "dbeaver.ini");
Console.WriteLine($"Enable debug mode in {dbeaverIniFile}");
var lines = File.ReadAllLines(dbeaverIniFile);
const string debugModeLine = "-Dlm.debug.mode=true";
if (lines.Length != 0 && !lines.Contains(debugModeLine))
{
    File.AppendAllLines(dbeaverIniFile, new[] { debugModeLine });
}

Console.WriteLine($"Done, use license as below: \n\n{licenseString}");

Console.ReadKey();

这是编译后,直接执行即可,需要 .NET 8.0,需要UAC,因为要写入 Program Files 目录。

Debug.zip (81.6 KB)

211 个赞

最新的 24.0 可以用这个吗

4 个赞

可用

5 个赞

可用 :+1:

3 个赞

厉害

3 个赞

好用,厉害

3 个赞

大赞! :+1:

3 个赞

Dbeaver Ultimate

1 个赞

Dbeaver 社区版 已经很强大了 完全够用。

3 个赞

想用定时自动备份的功能,然后发现需要UE版本 :rofl:

哥哥威武,希望加精华权限

感觉怪怪的,自动备份为啥要客户端来做,个人pc 总有关机的一天吧。
不是应该直接在服务器上写脚本吗

这台电脑不关机,哈哈哈,主要也没找到合适的pgsql的备份还原方案的,然后就手工备份了

用 dump 指定库 表 全量数据备份
sql 执行 copy 按条件备份。

1 个赞

似乎,dbeaver就是这么干的,不过的确改考虑用服务器本身跑容器来dump了。

mark一下,这就去试试

上车了,不过我好像用不到ue的功能,有什么ue独占功能安利吗

NoSQL数据库,云数据库存储,可视化查询,任务等

感谢,之前通过idea编译的算序列号的方式失效了

1 个赞

我那个工程就没编译过去的,然后就直接用的上面大神提供的key的