教程来源于:吾爱破解网站
----------更新线-----------
2018.01.23 Navicat Premium v12.0.23.0 测试破解依然有效
----------更新线-----------
整体的破解思路是替换主程序中预置的RSA加密算法公钥。
RSA加密算法的特点是密钥成对匹配使用,公钥加密私钥才能解密,私钥加密公钥才能解密
首先用RSA加密算法工具生成一对公钥和私钥,用自己的公钥替换官方的公钥,然后再用自己的公钥和私钥来加密解密激活请求信息,进行离线激活。
----------------------------------
需要的资源、工具
①Navicat Premium 12 v12.0.23.0 官网下载地址:
英文64位 http://download3.navicat.com/download/navicat120_premium_en_x64.exe
中文简体64位 http://download.navicat.com/download/navicat120_premium_cs_x64.exe
②DES加密算法计算器(16进制) http://www.pc6.com/softview/SoftView_85709.html
③Resource Hacker V4.5.30 exe程序资源查看软件 http://www.angusj.com/resourcehacker/resource_hacker.zip
以上资源百度网盘地址:https://pan.baidu.com/s/1dtKfvw
--------------------------------
以下是破解步骤:
第一步 生成自己的RSA公钥私钥对
可以用open ssl 工具生成,也可以使用其他工具生成,注意密钥是2048位的,PKCS#8格式
为了节省时间,可以使用我提供的一对密钥。
公钥:
-----BEGIN PUBLIC KEY-----
MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQB8vXG0ImYhLHvHhpi5FS3g
d2QhxSQiU6dQ04F1OHB0yRRQ3NXF5py2NNDw962i4WP1zpUOHh94/mg/KA8KHNJX
HtQVLXMRms+chomsQCwkDi2jbgUa4jRFN/6N3QejJ42jHasY3MJfALcnHCY3KDEF
h0N89FV4yGLyDLr+TLqpRecg9pkPnOp++UTSsxz/e0ONlPYrra/DiaBjsleAESZS
I69sPD9xZRt+EciXVQfybI/2SYeAdXMm1B7tHCcFlOxeUgqYV03VEqiC0jVMwRCd
+03NU3wvEmLBvGOmNGudocWIF/y3VOqyW1byXFLeZxl7s+Y/SthxOYXzu3mF+2/p
AgMBAAE=
-----END PUBLIC KEY-----
私钥:
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQB8vXG0ImYhLHvHhpi5FS3gd2QhxSQiU6dQ04F1OHB0yRRQ3NXF
5py2NNDw962i4WP1zpUOHh94/mg/KA8KHNJXHtQVLXMRms+chomsQCwkDi2jbgUa
4jRFN/6N3QejJ42jHasY3MJfALcnHCY3KDEFh0N89FV4yGLyDLr+TLqpRecg9pkP
nOp++UTSsxz/e0ONlPYrra/DiaBjsleAESZSI69sPD9xZRt+EciXVQfybI/2SYeA
dXMm1B7tHCcFlOxeUgqYV03VEqiC0jVMwRCd+03NU3wvEmLBvGOmNGudocWIF/y3
VOqyW1byXFLeZxl7s+Y/SthxOYXzu3mF+2/pAgMBAAECggEAK5qZbYt8wenn1uZg
6onRwJ5bfUaJjApL+YAFx/ETtm83z9ByVbx4WWT7CNC7fK1nINy20/mJrOTZkgIx
x6otiNC4+DIsACJqol+RLoo8I9pk77Ucybn65ZteOz7hVZIU+8j6LzW0KDt6yowX
e75r7G/NEpfibNc3Zz81+oDd2x+bHyGbzc9QcePIVuEzkof6jgpbWrQZU14itx9l
VxEgj/fbMccvBx8brR/l9ClmDZd9Y6TWsF1rfJpF3+DPeqFkKCiD7PGz3bs4O/Zd
ZrfV21ZNVusBW49G6bU63gQVKsOf1qGo3efbAW1HVxgTQ/lExVdcMvdenZm+ADKp
L4/wUQKBgQDOfBjn3OC2IerUFu18EgCS7pSjTSibXw+TeX3D5zwszLC091G2rGlT
5DihBUhMfesNdpoZynrs4YB6Sz9C3wSGAB8AM/tNvPhtSVtbMHmrdT2DEEKCvLkO
RNBnt+8aTu2hGRanw9aL1189gzwrmXK5ZuuURfgLrB9ihrvjo4VznQKBgQCapx13
dEA1MwapBiIa3k8hVBCoGPsEPWqM33RBdUqUsP33f9/PCx00j/akwmjgQNnBlAJo
Y7LOqPCyiwOkEf40T4IlHdzYntWQQvHhfBwqSgdkTE9tKj43Ddr7JVFRL6yMSbW3
9qAp5UX/+VzOLGAlfzJ8CBnkXwGrnKPCVbnZvQKBgQCd+iof80jlcCu3GteVrjxM
LkcAbb8cqG1FWpVTNe4/JFgqDHKzPVPUgG6nG2CGTWxxv4UFKHpGE/11E28SHYjb
cOpHAH5LqsGy84X2za649JkcVmtclUFMXm/Ietxvl2WNdKF1t4rFMQFIEckOXnd8
y/Z/Wcz+OTFF82l7L5ehrQKBgFXl9m7v6e3ijpN5LZ5A1jDL0Yicf2fmePUP9DGb
ZTZbbGR46SXFpY4ZXEQ9GyVbv9dOT1wN7DXvDeoNXpNVzxzdAIt/H7hN2I8NL+4v
EjHG9n4WCJO4v9+yWWvfWWA/m5Y8JqusV1+N0iiQJ6T4btrE4JSVp1P6FSJtmWOK
W/T9AoGAcMhPMCL+N+AvWcYt4Y4mhelvDG8e/Jj4U+lwS3g7YmuQuYx7h5tjrS33
w4o20g/3XudPMJHhA3z+d8b3GaVM3ZtcRM3+Rvk+zSOcGSwn3yDy4NYlv9bdUj/4
H+aU1Qu1ZYojFM1Gmbe4HeYDOzRsJ5BhNrrV12h27JWkiRJ4F/Q=
-----END RSA PRIVATE KEY-----
另外也可以自己在线生成,在线工具 http://web.chacuo.net/netrsakeypair
不需要输入密钥加密密码,生成密钥对后,复制到记事本里保存,后面步骤使用,如下图:
RSA密钥对在线生成
第二步 安装程序,并替换安装目录中主程序的公钥
①先安装官方原版程序,安装完毕后,找到安装程序目录,C:Program FilesPremiumSoftNavicat Premium 12
用 Resource Hacker 打开主程序navicat.exe,选择左侧节点RCData,选中ACTIVATIONPUBKEY项,可以看到官方公钥。
②把主程序资源中的激活公钥保存为二进制文件以修改,如下图我保存为名为public的文件。
③用记事本打开public文件,把第一步已生成的公钥复制到文件public里,并保存。
④选中ACTIVATIONPUBKEY项,右键用public文件替换资源,替换后点击保存,主程序中的公钥已被修改,如下图:
⑤Resource Hacker修改程序后,会默认保存原文件并重新命名为navicat_original.exe,用修改后的navicat.exe替换安装目录中的主程序navicat.exe。
另外:还可以用winhex工具修改,搜索关键文本BEGIN PUBLIC KEY,跳转定位到文件相应偏移量地址,用16进制形式修改。
第三步 算出有效的序列号密钥
使用我算好的密钥可以跳过此步,继续第四步,节省时间。
中文版64/32位密钥序列号: NAVF-3FDM-QO4O-RGVT
英文版64/32位密钥序列号: NAVG-UJIZ-EVAP-JAUW
!!!!!!!!!!!!!!
①序列号是一个16字节长度的字符串,是经过Base32编码的,其实际存储长度为80位(8字节),输入密钥后程序也会用Base32解码,以二进制形式存储比对。
简单讲一下Base32 编码,就是把二进制形式数据按每5位来分组,然后把每一组5位的二进制数据转为十进制,去按十进制顺序搜索Base32编码表中对应的32个可见字符,重新保存显示为编码表中的可见字符。
正常的Base32 编码表顺序是:
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
2
|
3
|
4
|
5
|
6
|
7
|
也可以改变字符顺序或字符内容,实现加密的效果,只有自己知道编码顺序才能解码。
不懂base32就自己Google一下
Navicat 的密钥是按照正常的Base32编码表,已经证实
char EncodeTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
密钥本身是一个80位长的二进制数据,为了便于表达我们用十六进形式表示。
第1个8位二进制数据是:68 /*不知道表示什么,但是不能改变*/
第2个8位二进制数据是:2A /*不知道表示什么,但是不能改变*/
第3个8位二进制数据是:00 /*不知道表示什么,但是可以任意设置改变,本次我设置空值,十六进制00,二进制就是00000000,你可以自己改*/
第4个8位二进制数据是:00 /*不知道表示什么,但是可以任意设置改变,本次我设置空值,十六进制00,二进制就是00000000,你可以自己改*/
第5个8位二进制数据是:00 /*不知道表示什么,但是可以任意设置改变,本次我设置空值,十六进制00,二进制就是00000000,你可以自己改*/
第6个8位二进制数据是:CE /*第6个和第7个组合使用*/
第7个8位二进制数据是: 32 /*第6个和第7个组合使用,目前已知0xAC 0x88 代表英文版,0xCE 0x32 代表简体中文版,0xAA 0x99 代表繁体中文版*/
第8个8位二进制数据是: 65 /*代表商业许可类型,0x65代表企业版,0x66代表教育版,0x67代表精简版*/
第9个8位二进制数据是: C0 /*这个8位数据的前4位必须是1100,转换为十进制就是12,代表版本12,数据的后4位不知道代表什么,但是可以延迟激活实用时间,后4位可以是0000 或0001 */
第10个8位二进制数据是: FF /*代表许可的期限权利类型,0xFB 代表30天不可转售许可, 0xFC 代表90天不可转售许可,0xFD 代表365天不可转售许可,0xFE 代表不可转售许可 ,0xFF 代表站点许可*/
这样我们得到了中文版本密钥的原始数据:68 2A 00 00 00 CE 32 65 C0 FF
②然后对密钥后8个8位数据进行DES对称加密,使用DES加密算法,并采用ECB模式,不懂DES加密算法和ECB模式,自己进行Google搜索。
需要加密的数据即:00 00 00 CE 32 65 C0 FF ,共8字节(64位)数据,DES加密算法加密后的密文数据位数一致,也是8字节(64位)数据。
DES加密密钥是:64ADF32FAEF21A27
unsigned char DESKey = { 0x64, 0xAD, 0xF3, 0x2F, 0xAE, 0xF2, 0x1A, 0x27 };
打开DES加密计算器,输入明文:000000CE3265C0FF,输入加密密钥:64ADF32FAEF21A27,得到密文:A1DFE00051EAF4B3
这样我们得到了加密后的序列号密钥数据:68 2A A1 DF E0 00 51 EA F4 B3
③把密钥原始数据转化为二进制,按每5位一组,进行Base32编码
二进制 01101000 00101010 01011101 10010100 01101100 10000011 10111000 11101000 10011010 10110011
base32编码分组 01101 00000 10101 00101 11011 00101 00011 01100 10000 01110 11100 01110 10001 00110 10101 10011
转为十进制 13 0 21 5 27 5 3 12 16 14 28 14 17 6 21 19
搜索base32编码表,得到密钥:NAVF3FDMQO4ORGVT,即4字符一段格式:NAVF-3FDM-QO4O-RGVT
由于密钥前16位数据必须是0x68,0x2A,且不参与DES加密可以看出,base32编码后激活密钥的前三个字符是 NAV...开头
英文版本的序列号密钥也是同样方法得到,请自己算,或者使用已算好的。
第四步 解密激活请求码,生成激活码
①启用程序Navicat Premium 12,未输入密钥前是评估版本,试用期是14天,启动后提示注册,断开本机的网络,阻止程序联网,然后点击注册。
②输入注册密钥NAVF-3FDM-QO4O-RGVT,并点击激活,输入密钥后不激活,可以使用30天。
③断网不能连接服务器激活,就是让它不能联网(你懂的),然后点击手动激活 我们就看到了离线激活请求码。
④离线激活信息是base64编码形式的,经过RSA公钥加密的,必须使用配对的私钥解密,由于公钥是我预置的,当然使用我的私钥解密。
解密后可以看到激活请求信息是:
{"K":"NAVF3FDMQO4ORGVT", "DI":"myqltxoo9vJHSX1v8NMQ", "P":"WIN 7"}
/*K代表激活密钥,就是我们输入的密钥,可以看出,DI代表设备识别码,不同硬件码不同,P代表平台,就是操作系统*/
把激活请求码复制到RSA在线解密工具,同时复制第一步的私钥到解密工具,就能解密请求码,如图
http://tool.chacuo.net/cryptrsaprikey
那激活码的信息是什么呢,激活码明文包含这几个项目:"K", "N", "O", "DI", "T"。
"K"代表激活密钥,必须和请求码中的"K"信息一致;"N"代表名称,填写任意字符,不宜太长;"O"代表组织,填写任意字符,不宜太长;
"T"代表注册时间,必须是UNIX时间格式的整数形式(如1516280990);
"DI"代表设备码,必须和请求码中的"DI"信息一致。
在windows系统上,"T"项可以忽略,即可以不填写。
这样我们得到了激活码的明文:{"K":"NAVF3FDMQO4ORGVT", "N":"52pojie", "O":"52pojie.cn", "DI":"myqltxoo9vJHSX1v8NMQ"}
或带时间项的激活码的明文:{"K":"NAVF3FDMQO4ORGVT", "N":"52pojie", "O":"52pojie.cn", "DI":"myqltxoo9vJHSX1v8NMQ", "T":1516280990}
!!!注意空格或符号必须英文的,格式要正确,否则报错 Invalid object termination character "34", at line 1, col 63 (offset 63)
时间 "T":1516280990 是没有引号的整数,否则报错 ' ' is not a valid integer value
最好直接复制激活码明文后修改""内的内容。
把激活码的明文复制到在线加密工具,同时也复制第一步的私钥到加密工具,就能生成标准的激活码了,如图
http://tool.chacuo.net/cryptrsaprikey
也可使用其他RSA加密工具。
⑤复制加密后激活码信息到程序激活窗口,点击激活,即可成功激活。
破解教程到此结束,欢迎各位提问:
---------------------------------------------------------------------------
参考来源:https://github.com/DoubleLabyrinth/navicat-keygen
For Navicat 12 Winddows&Mac
Product | Ent | Std | Edu | ESS |
Premium | 0x65 | -- | 0x66 | 0x67 |
MySQL | 0x68 | 0x69 | 0x6A | 0x6B |
PostgreSQL | 0x6C | 0x6D | 0x6E | 0x6F |
Oracle | 0x70 | 0x71 | 0x72 | 0x73 |
SQL Server | 0x74 | 0x75 | 0x76 | 0x77 |
SQLite | 0x78 | 0x79 | 0x7A | 0x7B |
MariaDB | 0x7C | 0x7D | 0x7E | 0x7F |
For Navicat 11 Windows
Product | Ent | Std | Edu | ESS |
Premium | 0x15 | -- | 0x16 | 0x3A |
MySQL | 0x01 | 0x02 | 0x07 | 0x35 |
PostgreSQL | 0x04 | 0x05 | 0x09 | 0x36 |
Oracle | 0x10 | 0x11 | 0x12 | 0x37 |
SQLite | 0x1D | 0x1E | 0X1F | 0x38 |
SQL Server | 0x24 | 0x25 | 0x26 | 0x39 |
MariaDB | 0x4D | 0x4E | 0x4F | 0x50 |
For Navicat 11 Mac
Product | Ent | Std | Edu | ESS |
Premium | 0x17 | -- | 0x18 | 0x40 |
MySQL | 0x2B | 0x03 | 0x08 | 0x3B |
PostgreSQL | 0x2C | 0x06 | 0x0A | 0x3C |
Oracle | 0x2D | 0x13 | 0x14 | 0x3D |
SQLite | 0x2E | 0x20 | 0x21 | 0x3E |
SQL Server | 0x2F | 0x27 | 0x28 | 0x3F |
MariaDB | 0x51 | 0x52 | 0x53 | 0x54 |
Ent is Enterprise license,
Std is Standard license,
Edu is Educational license,
ESS is Essentials license.