Changes

1,576 bytes added ,  01:55, 18 July 2017
no edit summary
Line 1: Line 1: −
Raw NCAs are encrypted.
+
The entire raw NCAs are encrypted.
   −
The only known section which is not encrypted in the raw NCA is the logo section, when the NCA includes that section.
+
The only known area which is not encrypted in the raw NCA is the logo section, when the NCA includes that section.
 +
 
 +
=Header=
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x100
 +
| RSA-2048 signature over the 0x200-bytes starting at offset 0x200.
 +
|-
 +
| 0x100
 +
| 0x100
 +
| Unknown. All-zero in some NCAs, non-zero for others. Presumably a RSA signature?
 +
|-
 +
| 0x200
 +
| 0x4
 +
| Magicnum "NCA3"
 +
|-
 +
| 0x208
 +
| 0x8?
 +
| Size of the entire NCA.
 +
|-
 +
| 0x210
 +
| 0x8
 +
| titleID
 +
|-
 +
| 0x230
 +
| 0x8
 +
| Big-endian titleID.
 +
|-
 +
| 0x240
 +
| 0x10*0x4(0x40)
 +
| Table for each section, see below.
 +
|-
 +
| 0x280
 +
| 0x20*0x4(0x80)
 +
| Table of SHA256 hashes, over each 0x200-byte Section Header Block.
 +
|}
 +
 
 +
The header is 0x400-bytes, at NCA+0.
 +
 
 +
==Section Table Entry==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Media offset
 +
|-
 +
| 0x4
 +
| 0x4
 +
| Media end-offset
 +
|-
 +
| 0x8
 +
| 0x4
 +
| Unknown
 +
|-
 +
| 0xC
 +
| 0x4
 +
| Unknown
 +
|}
 +
 
 +
Entry size is 0x10-bytes.
 +
 
 +
Media offset is absoluteoffset/{mediasize}, where mediasize is hard-coded to 0x200.
 +
 
 +
=Section Header Block=
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x1
 +
| ?
 +
|-
 +
|-
 +
| 0x1
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x2
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x3
 +
| 0x1
 +
| ?
 +
|-
 +
| 0x4
 +
| 0x1
 +
| Crypto type. 0 and >4 are invalid. 1 = none(plaintext from raw NCA). 2 = other crypto. 3 = regular crypto. 4 = unknown.
 +
|-
 +
| 0x5
 +
| 0x1
 +
| Padding?
 +
|-
 +
| 0x8
 +
|
 +
| Start of the fs-specific header data.
 +
|}
 +
 
 +
The Section Header Block for each section is at absoluteoffset+0x400+(sectionid*0x200), where sectionid corresponds to the index used with the entry/hash tables.
 +
 
 +
The total size is 0x200-bytes.
    
==Logo section==
 
==Logo section==
Contains the raw FS for the logo FS, see [[NCA_Content_FS|here]] for mounted-FS contents.
+
This is a PFS0. See [[NCA_Content_FS|here]] for the mounted-FS logo contents.
    +
==ExeFS section ==
 
This is a PFS0.
 
This is a PFS0.
 +
 +
See [[ExeFS|here]] for mounted-FS ExeFS contents.
    
=PFS0=
 
=PFS0=