README.zh-CN.md 7.0 KB

Navicat Keygen

这份repo将会告诉你Navicat是怎么完成离线激活的。

注册机是怎么工作的?

注意:仅支持Navicat Premium。

1. 如何编译

  • 在编译之前,你应该确保你有如下几个库:
  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/DoubleLabyrinth/navicat-keygen.git
  $ cd navicat-keygen
  $ make all

编译完成后你会在 bin/ 文件夹下看到两个可执行文件:

  $ ls bin/
  navicat-keygen    navicat-patcher

2. 如何使用这个Keygen

  1. 编译好keygen和patcher。__并且打开Navicat Premium至少一次。

  2. 备份好Navicat中所有已保存的数据库连接(包括密码)。

  3. 移除所有Navicat在 Keychain Access.app (即钥匙链)中保存的连接,如果有的话。

你可以通过在 Keychain Access.app 中搜索关键词 navicat 来找到它们。

  1. 使用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.pemrpk文件:

     $ openssl genrsa -out RegPrivateKey.pem 2048
     $ openssl rsa -in RegPrivateKey.pem -pubout -out rpk
    

    接着用刚生成的rpk文件替换

     /Applications/Navicat Premium.app/Contents/Resources/rpk
    
  1. 生成一份自签名的代码证书,并总是信任该证书。这一步非常重要。

然后用 codesignlibcc-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/
  1. 接下来使用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)

之后你会被要求填入请求码。注意 不要关闭注册机

  1. 断开网络 并打开Navicat。

找到注册窗口,填入注册机给你的序列号。然后点击激活按钮。

  1. 一般来说在线激活肯定会失败,这时候Navicat会询问你是否手动激活,直接选吧。

  2. 手动激活窗口你会得到一个请求码,复制它并把它粘贴到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==
  1. 如果不出意外,你会得到一个看似用Base64编码的激活码。

    直接复制它,并把它粘贴到Navicat的手动激活窗口,最后点激活按钮。

    如果没什么意外的话应该能成功激活。