| Next loaded CRR (Must be zero in file, set by RO during loading)
+
|-
+
| 0xC
+
| 0x4
+
| Previous loaded CRR (Must be zero in file, set by RO during loading)
+
|-
+
| 0x10
+
| 0x4
+
| Debug Info Offset
+
|-
+
| 0x14
+
| 0x4
+
| Debug Info Size
+
|-
+
| 0x18
+
| 0x8
+
| Reserved
|-
|-
| 0x20
| 0x20
−
| 0x20
+
| 0x4
−
| ?
+
| UniqueID Mask
+
|-
+
| 0x24
+
| 0x4
+
| UniqueID Pattern
+
|-
+
| 0x28
+
| 0x18
+
| Reserved
|-
|-
| 0x40
| 0x40
Line 28:
Line 56:
| 0x240
| 0x240
| 0x100
| 0x100
−
| RSA-2048 signature verified with the above modulo, starting with the data payload header
+
| RSA-2048 signature verified with the above modulo, over the data starting at 0x340 with the size from 0x358
|-
|-
| 0x340
| 0x340
−
| 0x18
+
| 0x4
−
| Data payload header
+
| Process UniqueID<<8, from the ProgramID
+
|-
+
| 0x344
+
| 0x4
+
| Size of the whole CRR0 file
+
|-
+
| 0x348
+
| 0x8
+
| Reserved
+
|-
+
| 0x350
+
| 0x4
+
| Hash-table Offset
+
|-
+
| 0x354
+
| 0x4
+
| Total hashes in the hash-table
|-
|-
| 0x358
| 0x358
| 0x4
| 0x4
−
| Size of the CRR0 file, excluding padding
+
| Offset to the plain region containing text tags, from the process [[NCCH#CXI|NCCH]]
|-
|-
| 0x35C
| 0x35C
| 0x4
| 0x4
−
| ?
+
| Size of plain region
|-
|-
| 0x360
| 0x360
Line 46:
Line 90:
| SHA-256 hash-table
| SHA-256 hash-table
|}
|}
−
+
Each hash stored in the hash-table is over the corresponding executable [[CRO0]] hash-table.
Each hash stored in the hash-table is over the corresponding executable [[CRO0]] hash-table.
−
CRR0 files are usually stored under "romfs:/.crr/". The end of the file is aligned to a 0x1000-byte boundary with 0xCC bytes, however the beginning of the padding is the first two text tags from the process [[NCCH#CXI|NCCH]] plain region.
+
CRR0 files must be stored under "romfs:/.crr/". The end of the file is aligned to a 0x1000-byte boundary with 0xCC bytes.