Support for multiple language.

This commit is contained in:
Double Sine 2018-02-07 17:54:06 +08:00
parent 2f04767075
commit 0b3bb309b2
No known key found for this signature in database
GPG Key ID: 44460E4F43EA8633
2 changed files with 34 additions and 4 deletions

View File

@ -66,10 +66,19 @@
~~_`May change when Navicat product changes. Uncertain yet.`_~~
_`Must change when Navicat product changes. Confirmed yet.`_
For __Navicat 12 x64 English version__: They must be `0xAC` and `0x88` respectively.
For __Navicat 12 x64 Simplified Chinese version__: They must be `0xCE` and `0x32` respectively.
For __Navicat 12 x64 Traditional Chinese version__: They must be `0xAA` and `0x99` respectively.
For __Navicat 11 x64 Simplified Chinese version__: They must be `0xCE` and `0x32` respectively.
| Language | data[5] | data[6] | Discoverer |
|------------|-----------|-----------|-----------------|
| English | 0xAC | 0x88 | |
| 简体中文 | 0xCE | 0x32 | |
| 繁體中文 | 0xAA | 0x99 | |
| 日本語 | 0xAD | 0x82 | @dragonflylee |
| Polski | 0xBB | 0x55 | @dragonflylee |
| Español | 0xAE | 0x10 | @dragonflylee |
| Français | 0xFA | 0x20 | @Deltafox79 |
| Deutsch | 0xB1 | 0x60 | @dragonflylee |
| 한국어 | 0xB5 | 0x60 | @dragonflylee |
| Русский | 0xEE | 0x16 | @dragonflylee |
| Português | 0xCD | 0x49 | @dragonflylee |
According to __Navicat 12 for Mac x64__ version, what IDA 7.0 indicates is that this two bytes are product signature.

View File

@ -35,9 +35,30 @@ void GenerateSnKey(char(&SnKey)[16]) {
#elif defined(NAVICAT_CHT)
temp_SnKey[5] = 0xAA; // Must be 0xAA for Traditional Chinese version.
temp_SnKey[6] = 0x99; // Must be 0x99 for Traditional Chinese version.
#elif defined(NAVICAT_JAP)
temp_SnKey[5] = 0xAD; // Must be 0xAD for Japanese version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x82; // Must be 0x82 for Japanese version. Discoverer: @dragonflylee
#elif defined(NAVICAT_POL)
temp_SnKey[5] = 0xBB; // Must be 0xBB for Polish version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x55; // Must be 0x55 for Polish version. Discoverer: @dragonflylee
#elif defined(NAVICAT_SPA)
temp_SnKey[5] = 0xAE; // Must be 0xAE for Spanish version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x10; // Must be 0x10 for Spanish version. Discoverer: @dragonflylee
#elif defined(NAVICAT_FRE)
temp_SnKey[5] = 0xFA; // Must be 0xFA for French version. Discoverer: @Deltafox79
temp_SnKey[6] = 0x20; // Must be 0x20 for French version. Discoverer: @Deltafox79
#elif defined(NAVICAT_GER)
temp_SnKey[5] = 0xB1; // Must be 0xB1 for German version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x60; // Must be 0x60 for German version. Discoverer: @dragonflylee
#elif defined(NAVICAT_KOR)
temp_SnKey[5] = 0xB5; // Must be 0xB5 for Korean version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x60; // Must be 0x60 for Korean version. Discoverer: @dragonflylee
#elif defined(NAVICAT_RUS)
temp_SnKey[5] = 0xEE; // Must be 0xB5 for Russian version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x16; // Must be 0x60 for Russian version. Discoverer: @dragonflylee
#elif defined(NAVICAT_POR)
temp_SnKey[5] = 0xCD; // Must be 0xCD for Portuguese version. Discoverer: @dragonflylee
temp_SnKey[6] = 0x49; // Must be 0x49 for Portuguese version. Discoverer: @dragonflylee
#else
#error "Navicat product type is not specified."
#endif