这份repo将会告诉你Navicat是怎么完成离线激活的。
注意:仅支持Navicat Premium。
openssl
capstone
keystone
rapidjson
libplist
如果你有brew
的话,你可以通过
$ brew install openssl
$ brew install capstone
$ brew install keystone
$ brew install rapidjson
$ brew install libplist
来完成它们的安装。
mac
分支,并编译keygen和patcher $ git clone -b mac --single-branch https://github.com/DoubleLabyrinth/navicat-keygen.git
$ cd navicat-keygen
$ make all
编译完成后你会在 bin/
文件夹下看到两个可执行文件:
$ ls bin/
navicat-keygen navicat-patcher
编译好keygen和patcher。__并且打开Navicat Premium至少一次。
备份好Navicat中所有已保存的数据库连接(包括密码)。
移除所有Navicat在 Keychain Access.app
(即钥匙链)中保存的连接,如果有的话。
你可以通过在 Keychain Access.app
中搜索关键词 navicat
来找到它们。
navicat-patcher
替换掉公钥: Usage:
navicat-patcher [--dry-run] <Navicat installation path> [RSA-2048 Private Key File]
[--dry-run] Run patcher without applying any patches.
This parameter is optional.
<Navicat installation path> Path to `Navicat Premium.app`.
Example:
/Applications/Navicat\ Premium.app/
This parameter must be specified.
[RSA-2048 Private Key File] Path to a PEM-format RSA-2048 private key file.
This parameter is optional.
例如:
$ ./navicat-patcher /Applications/Navicat\ Premium.app/
Navicat Premium For Mac 15.0.4 英文版 已通过测试。样例输出见这里。
仅对 Navicat Premium 版本 < 12.0.24 的说明:
如果你的Navicat版本小于12.0.24,那么navicat-patcher
将会终止并且不会修改目标文件。
你必须使用openssl生成RegPrivateKey.pem
和rpk
文件:
$ openssl genrsa -out RegPrivateKey.pem 2048
$ openssl rsa -in RegPrivateKey.pem -pubout -out rpk
接着用刚生成的rpk
文件替换
/Applications/Navicat Premium.app/Contents/Resources/rpk
然后用 codesign
对 libcc-premium.dylib
(如果有的话) 和 Navicat Premium.app
重签名。
如果你的Navicat Premium版本号高于15.0.0,
你必须先签名 libcc-premium.dylib
,再签名 Navicat Premium.app
。
$ codesign -f -s "Your self-signed code-sign certificate name" <path to Navicat Premium.app>/Contents/Frameworks/libcc-premium.dylib
$ codesign -f -s "Your self-signed code-sign certificate name" <path to Navicat Premium.app>
注意:
"Your self-signed code-sign certificate name"是你证书的名字,不是路径。
例如:
$ codesign -f -s "foobar" /Applications/Navicat\ Premium.app/Contents/Frameworks/libcc-premium.dylib
$ codesign -f -s "foobar" /Applications/Navicat\ Premium.app/
navicat-keygen
来生成 序列号 和 激活码。 Usage:
navicat-keygen [--adv] <RSA-2048 Private Key File>
[--adv] Enable advance mode.
This parameter is optional.
<RSA-2048 Private Key File> A path to an RSA-2048 private key file.
This parameter must be specified.
Example:
./navicat-keygen ./RegPrivateKey.pem
例如:
$ ./navicat-keygen ./RegPrivateKey.pem
你会被要求选择Navicat的语言以及输入主版本号。之后会随机生成一个 序列号。
$ ./navicat-keygen ./RegPrivateKey.pem
**********************************************************
* Navicat Keygen (macOS) by @DoubleLabyrinth *
* Version: 5.0 *
**********************************************************
[*] Select product language:
0. English
1. Simplified Chinese
2. Traditional Chinese
3. Japanese
4. Polish
5. Spanish
6. French
7. German
8. Korean
9. Russian
10. Portuguese
(Input index)> 0
[*] Input major version number:
(range: 0 ~ 15, default: 15)> 15
[*] Serial number:
NAVD-ZM3Z-BK6L-JUWD
[*] Your name:
你可以使用这个 序列号 暂时激活Navicat。
接下来你会被要求输入用户名
和组织名
;请随便填写,但不要太长。
[*] Your name: DoubleLabyrinth
[*] Your organization: DoubleLabyrinth
[*] Input request code in Base64: (Double press ENTER to end)
之后你会被要求填入请求码。注意 不要关闭注册机。
找到注册
窗口,填入注册机给你的序列号。然后点击激活
按钮。
一般来说在线激活肯定会失败,这时候Navicat会询问你是否手动激活
,直接选吧。
在手动激活
窗口你会得到一个请求码,复制它并把它粘贴到keygen里。最后别忘了连按至少两下回车结束输入。
[*] Input request code in Base64: (Double press ENTER to end)
IF+tuUn0WcDqJ0tthu/UwOxCZAz5/TqGrSG/9y5DcYJ0/5kfu11Tu314T/pUFK7WPzbnK2MFQ9kb9VytT4T10fXHKoHVYRBtOTYDQqCN2lwnmTty1i1SwUVO+CAqXasqqnss/r4ytbQUpsr2EmBqMQeXERhH72winnhfHkXoWgIHhYXgcvRBagKI1a48c8vJTjTB1eYHmO+DQI6orJoQ65ClqVSkdgKwyhAtSv0yMeKQX45UEX5hQCu9rrgqRN13f7mKWXhGZXkYrk4VZaHdfsr0o50zmU/ZhKLdFqRjrLzt4JY41+AIjAxtHd5g/LAUwBfUdfy9KdHjaeXCxdueXQ==
[*] Request Info:
{"K":"NAVDZM3ZBK6LJUWD", "DI":"78BC84E24E18EFCE1DF7", "P":"MAC"}
[*] Response Info:
{"K":"NAVDZM3ZBK6LJUWD","DI":"78BC84E24E18EFCE1DF7","N":"DoubleLabyrinth","O":"DoubleLabyrinth","T":1576005483}
[*] Activation Code:
dJldt4pru2xBtqWiYCdT8s8H0vQ8xe8wI/f3/BLzSf7m3gevql9Z9CfkdMpuCJg35YPYTDHBwYYLnU6heO0bmvnVAF1U6ZKtWXpAAi+w6tGjeV64uachGI+/xb5Q5bQzD0V44PGYmL6cYULYjNtndMAgzhWGFzgsjGtaJOSczWC2OI1R1gAGh+l+pFdx37+VMXtfUtwv7V+qypj5CrzIULsUdh9U5JHXkdVSK6y+8bEeplYLwvQR6Cnavra0WUAP0hSg7khjy+mPiCuXSMwH1EphFqXscp1WUGjkms7pSK/aPtCoxWcJeK3SrgAVberBn2+rqaI1PBBh5DTctDy2SQ==
如果不出意外,你会得到一个看似用Base64编码的激活码。
直接复制它,并把它粘贴到Navicat的手动激活
窗口,最后点激活
按钮。
如果没什么意外的话应该能成功激活。