Difference between revisions of "Nintendo DS Cart Whitelist"
Jump to navigation
Jump to search
Hallowizer (talk | contribs) (→Basic File Structure: added basic info on NDHX and NDHI) |
Hallowizer (talk | contribs) (→NDHT entry: hash1 is definitely something with the main binary) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
=== Header === | === Header === | ||
− | + | Each section starts with a 136 byte header. | |
{| class="wikitable" | {| class="wikitable" | ||
|- style="background-color: #ddd;" | |- style="background-color: #ddd;" | ||
Line 44: | Line 44: | ||
| 0x08 | | 0x08 | ||
| 20 | | 20 | ||
− | | | + | | hash1 (HMAC covering parts of the main binary) |
|- | |- | ||
| 0x1C | | 0x1C | ||
| 20 | | 20 | ||
− | | | + | | hash2 (overlay?) |
|} | |} | ||
Line 72: | Line 72: | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
− | | | + | | 4 |
− | | | + | | ROM serial |
+ | |- | ||
+ | | 0x04 | ||
+ | | 4 | ||
+ | | ROM revision | ||
+ | |- | ||
+ | | 0x08 | ||
+ | | 20 | ||
+ | | hash3 | ||
|} | |} | ||
Line 84: | Line 92: | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
− | | | + | | 4 |
− | | Unknown | + | | 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 | ||
+ | | 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 |