序列號
libcc.dll sub_1818810F0
4x4=16位元組
通過10個位元組的資料來生成的,
1. data[0] 和 data[1]必須分別為 `0x68` 和 `0x2A`,這兩個位元組為Navicat的標志數,
2. data[2]、data[3]和 data[4]可以是任意位元組,你想設成什么都行,
3. data[5]和 data[6]是Navicat的語言標志,值如下:
| 語言型別 | data[5] | data[6] |
|------------|:---------:|:---------:|
| English | 0xAC | 0x88 |
| 簡體中文 | 0xCE | 0x32 |
| 繁體中文 | 0xAA | 0x99 |
| 日本語 | 0xAD | 0x82 |
| Polski | 0xBB | 0x55 |
| Espa?ol | 0xAE | 0x10 |
| Fran?ais | 0xFA | 0x20 |
| Deutsch | 0xB1 | 0x60 |
| ??? | 0xB5 | 0x60 |
| Русский | 0xEE | 0x16 |
| Português | 0xCD | 0x49 |
4. data[7] 是Navicat產品ID,
|產品名 |Enterprise|Standard|Educational|Essentials|
|----------------------|:--------:|:------:|:---------:|:--------:|
|Navicat Report Viewer |0x0B | | | |
|Navicat Data Modeler 3| |0x84 |0x85 | |
|Navicat Premium |0x65 | |0x66 |0x67 |
|Navicat MySQL |0x68 |0x69 |0x6A |0x6B |
|Navicat PostgreSQL |0x6C |0x6D |0x6E |0x6F |
|Navicat Oracle |0x70 |0x71 |0x72 |0x73 |
|Navicat SQL Server |0x74 |0x75 |0x76 |0x77 |
|Navicat SQLite |0x78 |0x79 |0x7A |0x7B |
|Navicat MariaDB |0x7C |0x7D |0x7E |0x7F |
|Navicat MongoDB |0x80 |0x81 |0x82 | |
5. data[8] 的高4位代表 版本號,低4位未知,但可以用來延長激活期限,可取的值有`0000`和`0001`,
例如:
navicat15 :1111 f0
對于 Navicat 12: 高4位必須是`1100`,為`12`的二進制形式,
對于 Navicat 11: 高4位必須是`1011`,為`11`的二進制形式,
6. data[9]目前暫未知,但如果你想要 not-for-resale license 的話可以設成`0xFD`、`0xFC`或`0xFB`,
根據 Navicat 12 for Mac x64版本殘留的符號資訊可知:
* `0xFB`是 __Not-For-Resale-30-days__ license.
* `0xFC`是 __Not-For-Resale-90-days__ license.
* `0xFD`是 __Not-For-Resale-365-days__ license.
* `0xFE`是 __Not-For-Resale__ license.
* `0xFF`是 __Site__ license.
之后Navicat使用 ECB 模式的 DES演算法來加密 data[10]的后8位元組,也就是 data[2]到 data[9]的部分,
相應的DES密鑰為:
unsigned char DESKey = { 0x64, 0xAD, 0xF3, 0x2F, 0xAE, 0xF2, 0x1A, 0x27 };
之后使用Base32編碼
編碼之后你應該會得到一個16位元組長的字串,并且以"NAV"打頭,
請求碼
請求碼資料例如:{"K":"NAVDGCLU799LPHHH", "DI":"9DACE501FEE3822FA7D5", "P":"WIN"}
K:序列號
DI:機器碼
P:作業系統
請求碼資料使用navicat的公鑰加密
激活碼
激活碼資料例如:{"K":"NAVDGCLU799LPHHH", "DI":"9DACE501FEE3822FA7D5", "N":"popk", "O":"test", "T":1616371200}
K、DI值與請求碼資料中的值對應,
N:注冊名
O:組織
T:激活時間戳
激活碼為私鑰加密,激活時通過公鑰驗證,
分析記錄
Serial
Navicat.Exe-->check_2175B90

Libcc


__int64 __fastcall sub_1818810F0

Request


驗證激活碼
sub_1818808E0


啟動時驗證
00000000029B84FB

.text:00000000029B83A0 start


Libcc
.text:00000001806AA220 public: bool CCNavicat::setupContext(bool)
Libcc
.text:0000000181884670 CSRegistrationCenter_ICSRegistrationCenter_181884670

解密公鑰:

CSRegistrationCenter_ICSRegistrationCenter_181884670-->sub_181884E60驗證

Libcc rva 14C5020

讀注冊表,呼叫AES_CBC解密


公鑰解密激活碼

驗證激活碼
sub_1818808E0
驗證序列號
sub_1818852F0àsub_1818852F0-->serial_check_18187F510
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/285967.html
標籤:其他
上一篇:IBM美女敏捷教練跟你說透敏捷
