这份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
来完成它们的安装。
-
Clone
mac
分支,并编译keygen和patcher$ git clone -b mac --single-branch https://github.com/HardBrick21/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。
找到
注册
窗口,填入注册机给你的序列号。然后点击激活
按钮。 -
一般来说在线激活肯定会失败,这时候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的
手动激活
窗口,最后点激活
按钮。如果没什么意外的话应该能成功激活。