Skip to content

Latest commit

 

History

History
222 lines (150 loc) · 7.02 KB

README.zh-CN.md

File metadata and controls

222 lines (150 loc) · 7.02 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/HardBrick21/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 来找到它们。

  4. 使用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
      
  5. 生成一份自签名的代码证书,并总是信任该证书。这一步非常重要。

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

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

  7. 断开网络 并打开Navicat。

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

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

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

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

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