Difference between revisions of "Nintendo DS Cart Whitelist"
Jump to navigation
Jump to search
(number of titles) |
Hallowizer (talk | contribs) (→NDHT entry: hash1 is definitely something with the main binary) |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The '''Nintendo DS Cart Whitelist''' is a system title (HNHA / 0003000f484e4841) on DSi and 3DS TWL_MODE that contains a list of whitelisted DS carts. Other carts can be loaded if they have a valid RSA signature, which is how newer DS games load on DSi systems. | |
− | |||
− | == | + | == Format == |
+ | Newer versions of the file contain 3 sections: NDHT, NDHX, and NDHI. Older versions only contain NDHT. | ||
− | + | === Header === | |
− | + | Each section starts with a 136 byte header. | |
− | === Header | ||
{| class="wikitable" | {| class="wikitable" | ||
|- style="background-color: #ddd;" | |- style="background-color: #ddd;" | ||
Line 15: | Line 14: | ||
| 0x00 | | 0x00 | ||
| 4 | | 4 | ||
− | | | + | | Section type (NDHT, NDHX, NDHI) |
|- | |- | ||
| 0x04 | | 0x04 | ||
| 0x80 | | 0x80 | ||
− | | | + | | RSA signature of the entire section below this point. |
|- | |- | ||
| 0x84 | | 0x84 | ||
+ | | 4 | ||
+ | | Number of entries | ||
+ | |} | ||
+ | |||
+ | === NDHT entry === | ||
+ | NDHT entries correspond to titles and are 48 bytes. The NDHT section is always first. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- style="background-color: #ddd;" | ||
+ | ! Start | ||
+ | ! Length | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x00 | ||
+ | | 4 | ||
+ | | ROM serial | ||
+ | |- | ||
| 0x04 | | 0x04 | ||
− | | | + | | 4 |
+ | | ROM revision | ||
+ | |- | ||
+ | | 0x08 | ||
+ | | 20 | ||
+ | | hash1 (HMAC covering parts of the main binary) | ||
+ | |- | ||
+ | | 0x1C | ||
+ | | 20 | ||
+ | | hash2 (overlay?) | ||
|} | |} | ||
+ | === NDHT footer === | ||
+ | The NDHT footer is 24 bytes. | ||
+ | {| class="wikitable" | ||
+ | |- style="background-color: #ddd;" | ||
+ | ! Start | ||
+ | ! Length | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x00 | ||
+ | | 24 | ||
+ | | Unknown | ||
+ | |} | ||
− | === | + | === NDHX entry === |
{| class="wikitable" | {| class="wikitable" | ||
|- style="background-color: #ddd;" | |- style="background-color: #ddd;" | ||
Line 36: | Line 73: | ||
| 0x00 | | 0x00 | ||
| 4 | | 4 | ||
− | | | + | | ROM serial |
|- | |- | ||
| 0x04 | | 0x04 | ||
| 4 | | 4 | ||
− | | | + | | ROM revision |
|- | |- | ||
| 0x08 | | 0x08 | ||
| 20 | | 20 | ||
− | | | + | | hash3 |
+ | |} | ||
+ | |||
+ | === NDHI entry === | ||
+ | {| class="wikitable" | ||
+ | |- style="background-color: #ddd;" | ||
+ | ! Start | ||
+ | ! Length | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x00 | ||
+ | | 4 | ||
+ | | ROM serial | ||
|- | |- | ||
− | | | + | | 0x04 |
+ | | 4 | ||
+ | | ROM revision | ||
+ | |- | ||
+ | | 0x08 | ||
+ | | 64 | ||
+ | | 8 HMAC region struct | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Start | ||
+ | ! Length | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | 4 | ||
+ | | Unknown (offset?) | ||
+ | |- | ||
+ | | 0x4 | ||
+ | | 4 | ||
+ | | Unknown (length?) | ||
+ | |} | ||
+ | |||
+ | |- | ||
+ | | 0x48 | ||
| 20 | | 20 | ||
− | | | + | | Expected HMAC |
|} | |} |
Latest revision as of 03:02, 26 September 2022
The Nintendo DS Cart Whitelist is a system title (HNHA / 0003000f484e4841) on DSi and 3DS TWL_MODE that contains a list of whitelisted DS carts. Other carts can be loaded if they have a valid RSA signature, which is how newer DS games load on DSi systems.
Format
Newer versions of the file contain 3 sections: NDHT, NDHX, and NDHI. Older versions only contain NDHT.
Header
Each section starts with a 136 byte header.
Start | Length | Description |
---|---|---|
0x00 | 4 | Section type (NDHT, NDHX, NDHI) |
0x04 | 0x80 | RSA signature of the entire section below this point. |
0x84 | 4 | Number of entries |
NDHT entry
NDHT entries correspond to titles and are 48 bytes. The NDHT section is always first.
Start | Length | Description |
---|---|---|
0x00 | 4 | ROM serial |
0x04 | 4 | ROM revision |
0x08 | 20 | hash1 (HMAC covering parts of the main binary) |
0x1C | 20 | hash2 (overlay?) |
The NDHT footer is 24 bytes.
Start | Length | Description |
---|---|---|
0x00 | 24 | Unknown |
NDHX entry
Start | Length | Description |
---|---|---|
0x00 | 4 | ROM serial |
0x04 | 4 | ROM revision |
0x08 | 20 | hash3 |
NDHI entry
Start | Length | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 4 | ROM serial | |||||||||
0x04 | 4 | ROM revision | |||||||||
0x08 | 64 | 8 HMAC region struct
| |||||||||
0x48 | 20 | Expected HMAC |