请注意:本篇攻略不再适用 v16.2.x 以及之后的版本,如果需要使用本篇攻略激活,请 确保 您的 Navicat 版本低于 v16.2。
由于众所周知的原因,Navicat 16 更新后很难找到合适的激活成功教程,此前有 tgMrz 大佬改的 GUI 激活工具,在最新的版本中也已Navicat Premium 16.3.9激活经失效了,本文将 转载 Doublesine 巨佬的激活工具的使用方式,以及原理说明。
仓库地址:https://notabug.org/doublesine/navicat-keygen/
请注意:本工具只用于学习交流的目的,禁止商业使用,请自觉在下载 24 小时后删除。如有侵权,请联系博主。
本教程是以 Windows OS 为背景提供的 二进制编译文件 以及 使用说明。
-
如果您使用的是基于 Linux 内 核 的操作系统:那么想必您拥有一定的动手能力,该项目也提供了 Linux 版本的支持。
- 克隆 仓库的 Linux 分支:https://notabug.org/doublesine/navicat-keygen
- 按仓库的教程食用:https://notabug.org/doublesine/navicat-keygen/src/linux/doc/how-to-use.zh-CN.md
-
如果您使用的是 MacOS,那么很遗憾,此项目尚未更新对 MacOS 最新版本的支持
- 您可以尝试从 macw 等商店获取成品软件
大佬的仓库中没有提供编译后的 二进制 文件,需要自行编译。
在此,笔者提供一份自己机器上编译的版本(附杀毒报告)。如果您有能力,更建议自行编译。
笔者采用 Mega 网盘转储:https://mega.nz/file/2rYFCKrA#2NCxrBhWugOtlBwIfww5WgMXxTnwtPmYQ_8CYEO1aqM
以下是 哈希 验证信息:
VirusTotal 杀毒报告:https://www.virustotal.com/gui/file/62c74467e0aa9ef7809a49a3cb8c5c54739cce9999c3d2cac9ecf031/detection
使用过之前 GUI 版本的激活工具的童鞋们,应该会发现激活成功教程一般分两步走:激活成功教程软体、注册机激活。此工具也是如此。
使用 替换掉 和 里的 Navicat 激活公钥。
使用参数
-
运行 patcher 但不对 Navicat 程序做任何修改。
- 这个参数是可选的。
-
Navicat 的完整安装路径。
- 这个参数必须指定。
-
RSA-2048 私钥文件的完整路径或相对路径。
- 这个参数是可选的。
- 如果未指定, 将会在当前目录生成一个新的 RSA-2048 私钥文件。
具体例子
假设,我们的 安装在:,我们需要在一个 具有管理员权限的 Shell 中执行:
看到如下输出,那么说明程序成功激活成功教程:
首先,我们需要 断开网络连接,否则我们无法进入离线激活模式。
使用 来生成序列号和激活码。
使用参数
-
必须是 或 :
-
如果指定了 , 最终将生成 文件。这个选项是给 Navicat 旧激活方式使用的。
-
如果指定了 , 最终将生成 Base64 样式 的激活码。这个选项是给 Navicat 新激活方式使用的。
-
这个参数必须指定。
-
-
开启高级模式:
- 这个参数是可选的。
- 如果指定了这个参数, 将会要求你手工填写产品 ID 号、语言标识号。这个选项一般是给以后用的。
-
RSA-2048 私钥文件的完整路径或相对路径。私钥必须是 PEM 格式的。
- 这个参数必须指定
- 通常,这里指定上一步生成的私钥文件位置
具体例子
在 Shell 中执行:
按照提示,输入内容即可。以下是一个输出示例:
激活流程刨解
如果你不熟悉英文的话,可以按以下的关键点输入数据。
- 选择激活软体
此处,我们需要激活 ,因此输入 并按下 Enter 。
- 选择软体语言
此处,我们使用的版本为 版,因此输入 并按下 Enter。
- 选择软件版本
此处,我们激活的版本为 ,因此直接按下 Enter。
- 获取序列号。
此处,输出的为我们激活的序列号。
先断网,打开 Navicat,进入激活页面,输入许可证并激活后出现这个页面:(选择 手动激活)
- 配置注册身份信息:
此处,我们假设用户为 ,组织为 。
输入 按下 Enter,再输入 按下 Enter。
- 生成激活码
看到如上字符,然后我们去如下界面复制请求码:
复制进终端后,按下两次 Enter。
- 激活程序
看到程序吐出如下内容:
第二行即是我们需要的 激活码,我们将其复制进激活页面,激活,即激活成功。此时恢复网络连接即可。
原文来自:https://notabug.org/doublesine/navicat-keygen/src/windows/doc/how-does-it-work.zh-CN.md
博主只对本篇内容进行内容整理,并优化显示格式。
- Navicat激活公钥
这是一个 2048 位的RSA公钥,Navicat 使用这个公钥来完成相关激活信息的加密和解密。
这个公钥被作为 RCData 类型的资源储存在 navicat.exe 当中。资源名为 。你可以使用一个叫 Resource Hacker 的软件来查看它。这个公钥的具体内容为:
如果您有相应的私钥并乐意公开的话欢迎联系我,我将非常感谢您的慷慨。
注意:
从 Navicat Premium 12.0.25 开始,Navicat 不再从 的资源中加载私钥。事实上,公钥转为从 中加载,并且已经被加密。与此同时,为了防止被轻松地替换,加密的公钥被分到5个地方储存:
以下内容是从 Navicat Premium x64 12.0.25 简体中文版 的 中发现的, 的SHA256值为 。我不保证在Navicat 的其他版本中相关偏移量和下述的相同,但相关的 字符串 以及 立即数 是很可能找得到的。
-
在 中,文件偏移量 的地方,储存了加密公钥的第一部分,以 字符串 的形式储存:
-
在 中,文件偏移量 的地方,储存了加密公钥的第二部分,以 立即数 的形式储存在一条指令中:
相应的十进制值为:
-
在 中,文件偏移量 的地方,储存了加密公钥的第三部分,以 字符串 的形式储存:
-
在 中,文件偏移量 的地方,储存了加密公钥的第四部分,以 立即数 的形式储存在一条指令中:
相应的十进制值为:
-
在 中,文件偏移量 的地方,储存了加密公钥的第五部分,以 字符串 的形式储存:
这五部分按照 的形式输出则为加密的公钥,顺序和上述的顺序相同,具体的输出为:
这个加密的公钥可以用我的另外一个 repo(how-does-navicat-encrypt-password)解密,其中密钥为 。
例如:
注意:
从 Navicat Premium 12.1.11 开始,Navicat 不再用上面说的方法加载密钥。当然密钥还是储存在 文件中。当 Navicat 启动时,它会用 8 字节长的 XOR 密钥来加密公钥,并储存到一个静态数据区中。当验证 激活码 时,Navicat 会重新生成一样的 8 字节 XOR 密钥,并解密在静态储存区中的密文,从而获取公钥。
在 ,x64 版本中,你会看到如下的几条指令:
- 请求码
这是一个 Base64 编码的字符串,代表的是长度为 256 字节的数据。这 256 字节的数据是 离线激活信息 用 Navicat激活公钥 加密的密文。
- 离线激活请求信息
这是一个JSON风格的字符串。它包含了 3 个Key:、和,分别代表 序列号、设备识别码(与你的电脑硬件信息相关)和 平台 (其实就是操作系统类型)。
例如:
- 激活码
这是一个 Base64 编码的字符串,代表的是长度为256字节的数据。这256字节的数据是 离线激活回复信息 用 Navicat 激活私钥 加密的密文。目前我们不知道官方的 Navicat 激活私钥,所以我们得替换掉软件里的公钥。
- 离线激活回复信息
和 离线激活请求信息 一样,它也是一个JSON风格的字符串。但是它包含5个Key,分别为、、、 和 .
和 的意义与 离线激活请求信息 中的相同,且Value必须与 离线激活请求信息 中的相同。
、、 分别代表 注册名、组织、授权时间。
注册名 和 组织 的值类型为 UTF-8 编码的字符串。授权时间 的值类型可以为字符串或整数(感谢 @Wizr 在issue #10中的报告)。
- 序列号
这是一个被分为了 4 个部分的字符串,其中每个部分都是4个字符长。
序列号 是通过 10 个字节的数据来生成的。为了表达方便,我用 uint8_t data[10] 来表示这 10 个字节。
-
data[0] 和 data[1] 必须分别为 和 。
这两个字节为 Navicat 的标志数。
-
data[2]、data[3] 和 data[4] 可以是任意字节,你想设成什么都行。
-
data[5] 和 data[6] 是 Navicat 的语言标志,值如下:
- data[7] 是 Navicat 产品 ID。(感谢 @dragonflylee 和 @Deltafox79提供的数据)
-
data[8] 的高 4 位代表 版本号。低 4 位未知,但可以用来延长激活期限,可取的值有 和 。
例如:
对于 Navicat 12: 高 4 位必须是 ,为 的二进制形式。 对于 Navicat 11: 高 4 位必须是 ,为 的二进制形式。
-
data[9] 目前暂未知,但如果你想要 not-for-resale license 的话可以设成 、 或 。
根据 Navicat 12 for Mac x64 版本残留的符号信息可知:
- 是 Not-For-Resale-30-days license.
- 是 Not-For-Resale-90-days license.
- 是 Not-For-Resale-365-days license.
- 是 Not-For-Resale license.
- 是 Site license.
之后 Navicat 使用 ECB 模式的 DES 算法来加密 data[10] 的后8字节,也就是 data[2] 到 data[9] 的部分。
相应的 DES 密钥为:
之后使用 Base32 编码 data[10],其中编码表改为:
编码之后你应该会得到一个 16 字节长的字符串,并且以 打头。
将 16 字节的字符串分成 4 个 4 字节的小块,然后用 连接就可以得到 序列号。
-
检查用户输入的 序列号 是否合法。
-
在用户了按钮之后,Navicat 会先尝试在线激活。如果失败,用户可以选择离线激活。
-
Navicat 会使用用户输入的 序列号 以及从用户电脑收集来的信息生成 离线激活请求信息,然后用 Navicat 激活公钥 加密,并将密文用 Base64 编码,最后得到 请求码。
-
正常流程下,请求码 应该通过可联网的电脑发送给 Navicat 的官方激活服务器。之后 Navicat 的官方激活服务器会返回一个合法的 激活码。
但现在我们使用注册机来扮演官方激活服务器的角色,只是 Navicat 软件里的激活公钥得换成自己的公钥:
- 根据 请求码, 获得值和值。
- 用值、用户名、组织名和值填写 离线激活回复信息。
- 用自己的 2048 位RSA私钥加密 离线激活回复信息,你将会得到256字节的密文。
- 用 Base64 编码这256字节的密文,就可以得到 激活码。
- 在 Navicat 软件中填入 激活码 即可完成离线激活。
最后修改于 2023-07-09
文章标题:Navicat 16 激活攻略 – 藤之青
文章地址:
本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
文本排版遵循 中文文案排版指北;允许自由转载和修改,但请务必标明文章来源且不得运用于商业目的并以相同方式分享(不得破坏排版格式)。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/180505.html