Deepin20下安裝navicat15

語言: CN / TW / HK

Deepin20下安裝navicat15

適用於Linix/Unix核心的安裝,不限於Deepin

deepin20的安裝就不說了,建議在實體機上直接裝,流暢度比vmware高太多了,可用作為第一生產力機器來用了,換個介面換種心情。

deepin 15.6之前是可以使用deepin的官方安裝器免U盤安裝的,15.6之後不支援體驗安裝,只能用u盤了,喜歡的朋友快上

好吧,開始安裝navicat15.

連結: http://pan.baidu.com/s/1G7yoCW2Vl36-aXFISECUtQ 密碼: anjs

直接下載整個資料夾。

只能啟用當前資料夾下的navicat15,不要去官網新下載,無法啟用!!!已經嘗試過!

準備工作keygen和patcher

這裡的kengen和patcher已經編譯好了, 因此只需要確保你裝了以下幾個庫, 就可以跳過此節了。

前提條件

  1. 但是請確保你安裝了下面幾個庫:
  • capstone
  • keystone
  • rapidjson
  • openssl

你可以通過下面的命令來安裝它們:

# install capstone
$ sudo apt-get install libcapstone-dev

# install keystone
$ sudo apt-get install cmake
$ git clone http://github.com/keystone-engine/keystone.git
$ cd keystone
$ mkdir build
$ cd build
$ ../make-share.sh
$ sudo make install
$ sudo ldconfig

# install rapidjson
$ sudo apt-get install rapidjson-dev

# install openssl
$ sudo apt-get install openssl
  1. 你的gcc支援C++17特性。

編譯

$ git clone -b linux --single-branch http://github.com/DoubleLabyrinth/navicat-keygen.git
$ cd navicat-keygen
$ make all

生成完成後,你會在 bin/ 資料夾下看到編譯後的keygen/patcher。

掛載並提取檔案

假設你的目錄直接就是從網盤下載好的Navicat15,且和我一樣路徑~/Navicat15,以下操作全部在這個目錄下

## 把navicat15-premium-cs.AppImage掛載到一個目錄,以便於把內部檔案提取出來用patcher破解
# 掛載
$ mkdir navicat15-premium-cs
$ sudo mount -o loop avicat15-premium-cs.AppImage navicat15-premium-cs

# 提取檔案
$ cp -r /navicat15-premium-cs navicat15-premium-cs-patched

檔案提取完之後,掛載點就可用刪了,我會在安裝完畢之後一起來清理這些東西。

Patcher破解

# 破解
$ chmod +x navicat-patcher
./navicat-patcher navicat15-premium-cs-patched

以上沒有報錯的話會有如下類似輸出。

**********************************************************
*       Navicat Patcher (Linux) by @DoubleLabyrinth      *
*                  Version: 1.0                          *
**********************************************************

Press ENTER to continue or Ctrl + C to abort.

[+] Try to open libcc.so ... Ok!

[+] PatchSolution0 ...... Ready to apply
   RefSegment      =  1
   MachineCodeRva  =  0x0000000001413e10
   PatchMarkOffset = +0x00000000029ecf40

[*] Generating new RSA private key, it may take a long time...
[*] Your RSA private key:
   -----BEGIN RSA PRIVATE KEY-----
   MIIEowIBAAKCAQEArRsg1+6JZxZNMhGyuM8d+Ue/ky9LSv/XyKh+wppQMS5wx7QE
   XFcdDgaByNZeLMenh8sgungahWbPo/5jmkDuuHHrVMU748q2JLL1E3nFraPZqoRD
   ...
   ...
   B1Z5AoGBAK8cWMvNYf1pfQ9w6nD4gc3NgRVYLctxFLmkGylqrzs8faoLLBkFq3iI
   s2vdYwF//wuN2aq8JHldGriyb6xkDjdqiEk+0c98LmyKNmEVt8XghjrZuUrn8dA0
   0hfInLdRpaB7b+UeIQavw9yLH0ilijAcMkGzzom7vdqDPizoLpXQ
   -----END RSA PRIVATE KEY-----
[*] Your RSA public key:
   -----BEGIN PUBLIC KEY-----
   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArRsg1+6JZxZNMhGyuM8d
   +Ue/ky9LSv/XyKh+wppQMS5wx7QEXFcdDgaByNZeLMenh8sgungahWbPo/5jmkDu
   ...
   ...
   GrVJ3o8aDm35EzGymp4ON+A0fdAkweqKV6FqxEJqLWIDRYh+Z01JXUZIrKmnCkgf
   QQIDAQAB
   -----END PUBLIC KEY-----

*******************************************************
*                   PatchSolution0                    *
*******************************************************
[*] Previous:
+0x0000000000000070                          01 00 00 00 05 00 00 00          ........
+0x0000000000000080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+0x0000000000000090  00 00 00 00 00 00 00 00 40 cf 9e 02 00 00 00 00  ........@.......
+0x00000000000000a0  40 cf 9e 02 00 00 00 00 00 10 00 00 00 00 00 00  @...............
[*] After:
+0x0000000000000070                          01 00 00 00 05 00 00 00          ........
+0x0000000000000080  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+0x0000000000000090  00 00 00 00 00 00 00 00 d0 d0 9e 02 00 00 00 00  ................
+0x00000000000000a0  d0 d0 9e 02 00 00 00 00 00 10 00 00 00 00 00 00  ................

[*] Previous:
+0x00000000029ecf40  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+0x00000000029ecf50  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
+0x00000000029ecf60  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
...
...
+0x00000000029ed0c0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
[*] After:
+0x00000000029ecf40  ef be ad de 4d 49 49 42 49 6a 41 4e 42 67 6b 71  ....MIIBIjANBgkq
+0x00000000029ecf50  68 6b 69 47 39 77 30 42 41 51 45 46 41 41 4f 43  hkiG9w0BAQEFAAOC
+0x00000000029ecf60  41 51 38 41 4d 49 49 42 43 67 4b 43 41 51 45 41  AQ8AMIIBCgKCAQEA
...
...
...
+0x00000000029ed0c0  43 6b 67 66 51 51 49 44 41 51 41 42 ad de ef be  CkgfQQIDAQAB....

[*] Previous:
+0x0000000001413e10  44 0f b6 24 18 48 8b 44 24 28 8b 50 f8 85 d2 79  D..$.H.D$(.P...y
+0x0000000001413e20  6f                                               o               
[*] After:
+0x0000000001413e10  45 31 e4 48 8d 05 2a 91 5d 01 90 90 90 90 90 90  E1.H..*.].......
+0x0000000001413e20  90                                               .               

[*] New RSA-2048 private key has been saved to
   /home/doublesine/github.com/navicat-keygen/RegPrivateKey.pem

*******************************************************
*           PATCH HAS BEEN DONE SUCCESSFULLY!         *
*                  HAVE FUN AND ENJOY~                *
*******************************************************

重新打包

將破解後的資料夾重新打包成AppImage.

$ chmod +x appimagetool-x86_64.AppImage
$ ./appimagetool-x86_64.AppImage navicat15-premium-cs-patched navicat15-premium-cs-patched.AppImage

keygen啟用

後續所有操作在斷網下進行!!!

後續所有操作在斷網下進行!!!

後續所有操作在斷網下進行!!!

patcher破解完之後,當前資料夾下會有一個名為RegPrivateKey.pem的檔案,如果當前檔案沒有,那麼後續就無法在進行下去了。

啟用

$ ./navicat-keygen --text RegPrivateKey.pem

類似如下輸出和操作:

第一步選product: 1 premium

第二步選語言: 1 simple chinese

我當前的這個是中文版本的,選0會導致序列號不對而導致後續無法點選啟用按鈕

第三步選主版本: 15

然後你會得到一個序列號,且當前介面會停住,讓你輸入name等資訊。

先別動,不要關視窗!

**********************************************************
*       Navicat Keygen (Linux) by @DoubleLabyrinth       *
*                   Version: 1.0                         *
**********************************************************

[*] Select Navicat product:
0. DataModeler
1. Premium
2. MySQL
3. PostgreSQL
4. Oracle
5. SQLServer
6. SQLite
7. MariaDB
8. MongoDB
9. ReportViewer

(Input index)> 1

[*] 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: 12)> 15

[*] Serial number:
NGHK-LKCJ-EO8J-KRGL

[*] Your name:

第四步: 執行navicat,也就是我們重新打包後的AppImage.

$ chmod +x navicat15-premium-cs-patched.AppImage
$ ./navicat15-premium-cs-patched.AppImage

網上很多教程都是先執行,然後執行keygen,我這裡是先執行的keygen,沒有任何問題,如果你遇到了問題,你也可以試試這種方式。

執行之後navicat打開了,輸入剛剛的序列號,啟用,因為沒有聯網,所以會啟用失敗,有個彈窗,點選手動啟用,並複製手動啟用視窗中的那串請求碼(啟用過windows版本的朋友應該很熟悉了)。

第五步: 回到keygen視窗,輸入你的名字和組織,隨便輸,短一點。

[*] Your name: kid
[*] Your organization: qita

[*] Input request code in Base64: (Double press ENTER to end)

然後輸入剛剛從手動啟用視窗中複製的請求碼,兩次回車結束。

[*] Input request code in Base64: (Double press ENTER to end)
OaGPC3MNjJ/pINbajFzLRkrV2OaSXYLr2tNLDW0fIthPOJQFXr84OOroCY1XN8R2xl2j7epZ182PL6q+BRaSC6hnHev/cZwhq/4LFNcLu0T0D/QUhEEBJl4QzFr8TlFSYI1qhWGLIxkGZggA8vMLMb/sLHYn9QebBigvleP9dNCS4sO82bilFrKFUtq3ch8r7V3mbcbXJCfLhXgrHRvT2FV/s1BFuZzuWZUujxlp37U6Y2PFD8fQgsgBUwrxYbF0XxnXKbCmvtgh2yaB3w9YnQLoDiipKp7io1IxEFMYHCpjmfTGk4WU01mSbdi2OS/wm9pq2Y62xvwawsq1WQJoMg==

[*] Request Info:
{"K":"NAVMRTVJEO42IODD", "DI":"4A12F84C6A088104D23E", "P":"linux"}

[*] Response Info:
{"K":"NAVMRTVJEO42IODD","DI":"4A12F84C6A088104D23E","N":"DoubleLabyrinth","O":"DoubleLabyrinth","T":1575543648}

[*] Activation Code:
i45HIr7T1g69Cm9g3bN1DBpM/Zio8idBw3LOFGXFQjXj0nPfy9yRGuxaUBQkWXSOWa5EAv7S9Z1sljlkZP6cKdfDGYsBb/4N1W5Oj1qogzNtRo5LGwKe9Re3zPY3SO8RXACfpNaKjdjpoOQa9GjQ/igDVH8r1k+Oc7nEnRPZBm0w9aJIM9kS42lbjynVuOJMZIotZbk1NloCodNyRQw3vEEP7kq6bRZsQFp2qF/mr+hIPH8lo/WF3hh+2NivdrzmrKKhPnoqSgSsEttL9a6ueGOP7Io3j2lAFqb9hEj1uC3tPRpYcBpTZX7GAloAENSasFwMdBIdszifDrRW42wzXw==

最後一步: 複製Activation Code到手動啟用視窗,點選啟用。

可能遇到的錯誤

序列號輸入後顯示x,啟用按鈕無法點選.

檢查是否是product或者語言或者版本號選擇,填寫錯誤。
我遇到的就是語言選成了0 English,然後啟用按鈕無法點選。

keygen執行時會報錯:

[-] ./navicat-keygen/main.cpp:174 ->
    BIO_new_file failed.

如果這個檔案有問題,會報錯:

[-] ./navicat-keygen/main.cpp:63 ->
    PEM_read_bio_RSAPrivateKey failed.
    Hints: Are you sure that you DO provide a valid RSA private key file?

我目前只遇到過上面這些錯誤,但都是操作不對引起的,正常流程不會有錯。

最後工作

現在Navicat15資料夾下的navicat15-premium-cs-patched.AppImage就是最終破解了的應用,複製這個應用到你想要的地方就行。

閒麻煩的直接執行就用命令,會啟動一個終端。

$ ./navicat15-premium-cs-patched.AppImage

優化,將其新增到啟動器當中

來自一個優秀(菜逼)程式設計師的強迫症,制止了我直接使用命令列啟動的方式。

我當前是deepin系統。開啟/usr/share/applicaions資料夾,這裡面能看到所有的應用。

我們為navicat15建立一個叫navicat15.desktop的傢伙。

[Desktop Entry]
Name=navicat15
Comment=navicat15
Exec=/home/wangtao/app/navicat15/navicat15-premium-cs-patched.AppImage
Icon=/home/wangtao/app/navicat15/navicat15.png
Terminal=false
Categories=Development
Type=Application

說明

第一行是必須的,就像shell指令碼要加入#!/bin/bash一樣,用於系統識別
第二行Name自己隨意填,用於顯示和搜尋
第三行Comment備註,和Name填一樣就行
第四行Exec是指應用可執行檔案路徑
第五行Icon是指應用圖示的路徑
第六行Terminal表示啟動時是否需要顯示終端,建議設定為false
第七行是指這個應用的分類
第八行Type就填Application

建立好之後就開啟啟動器就會看到,且能正常啟動了。

安裝後清理

# 取消掛載,掛載點用全路徑,不確定全路徑的用df -h直接看或者pwd
$ sudo umount /home/wangtao/Navicat15/navicat15-premium-cs-patched
# 清理多餘檔案
$ sudo rm -rf Navicat15/