1. 下载破解工具

https://github.com/DoubleLabyrinth/navicat-keygen/tree/mac

其中,navicat-keygen为破解器;navicat-patcher为补丁。补丁的意义在于navicat 12.1以后密钥写到二进制文件里了。

➜ navicat-keygen-mac tree -L 2

.
├── LICENSE
├── README.md
├── README.zh-CN.md
├── navicat-keygen
│   ├── 2048key.pem  私钥
│   ├── Makefile
│   ├── main.cpp
│   ├── navicat-keygen  编译生成
│   └── rpk   公钥
└── navicat-patcher
├── Makefile
├── main.c
├── main.c.bak  备份
├── navicat-patcher  编译生成
└── rpk  公钥

2. 生成密钥对, 然后将公钥拷贝到navicat-patcher文件夹, 私钥拷贝到navicat-keygen文件夹

➜ navicat-keygen-mac cd navicat-keygen
➜ navicat-keygen openssl genrsa -out 2048key.pem 2048
➜ navicat-keygen cp rpk ../navicat-patch/

3. 用自己生成的公钥替代navicat里共钥

➜ navicat-keygen cd ../navicat-patcher
➜ navicat-patcher cp main.c main.c.bak
➜ navicat-patcher vi main.c, 替换用rpk内容替换const char pubkey[9][72]
➜ navicat-patcher make release

➜ navicat-patcher ./navicat-patcher /Applications/Navicat\ Premium.app/Contents/MacOS/Navicat\ Premium
Open file successfully.
Get file size successfully: 72335296
Map file successfully.
offset = 0x0000000002cd3798
Success!
➜ navicat-patcher xxd -s 0x0000000002cd3798 '/Applications/Navicat Premium.app/Contents/MacOS/Navicat Premium'|more
02cd3798: 2d2d 2d2d 2d42 4547 494e 2050 5542 4c49 -----BEGIN PUBLI
02cd37a8: 4320 4b45 592d 2d2d 2d2d 004d 4949 4249 C KEY-----.MIIBI
02cd37b8: 6a41 4e42 676b 7168 6b69 4739 7730 4241 jANBgkqhkiG9w0BA
02cd37c8: 5145 4641 414f 4341 5138 414d 4949 4243 QEFAAOCAQ8AMIIBC
02cd37d8: 674b 4341 5145 4174 6a62 4e38 764e 5a68 gKCAQEAtjbN8vNZh
02cd37e8: 4758 5755 5651 2f35 696e 7500 6362 6732 GXWUVQ/5inu.cbg2
02cd37f8: 767a 3732 5832 6d30 304a 4f45 4655 7148 vz72X2m00JOEFUqH
02cd3808: 436b 442b 6445 6f47 6170 6357 7639 5a64 CkD+dEoGapcWv9Zd

确认navicat公钥被替换为rpk后,开始执行激活操作。

4. 激活

➜ navicat-keygen ./navicat-keygen 2048key.pem
Which is your Navicat 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  我装的是英文版,所以选0

SnKey:       这个是激活码
xxxx-xxxx-xxxx-xxxx

Your name:    跳过
Yout organization:    跳过
Input Request Code (in Base64), empty line to return:   此处暂停

断网,开启navicat软件,选择激活,输入激活码

选择manual xxx,navicat会弹出一串base64,复制到到终端,也就是navicat-keygen “Input Request Code (in Base64), empty line to return:”处,

回车;回车;navicat-keygen会计算激活码。

将navicat-keygen给出的激活码复制到navicat激活界面。

--EOF--

05-11 11:27