教程來源於:吾愛破解網站
----------更新線-----------
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 Files\PremiumSoft\Navicat 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.
