Difference between revisions of "DSiWare Exports"

From 3dbrew
Jump to navigation Jump to search
Line 1: Line 1:
 
The DSiWare exported from a 3DS is located at "[[SD_Filesystem|sdmc]]:/Nintendo 3DS/<ID0>/<ID1>/Nintendo DSiWare". Filenames are same format as [http://dsibrew.org/wiki/Tad DSi]: "<TitleID-Low>.bin". The below sizes include the 0x20-byte block metadata.
 
The DSiWare exported from a 3DS is located at "[[SD_Filesystem|sdmc]]:/Nintendo 3DS/<ID0>/<ID1>/Nintendo DSiWare". Filenames are same format as [http://dsibrew.org/wiki/Tad DSi]: "<TitleID-Low>.bin". The below sizes include the 0x20-byte block metadata.
  
DSiWare exported from 3DS use [[Nand/private/movable.sed|keyslots]] initialized by movable.sed.
+
DSiWare exported from 3DS use [[Nand/private/movable.sed|keyslots]] initialized by movable.sed. Each section is encrypted with AES-CBC.
  
 
=Block Metadata=
 
=Block Metadata=
Line 16: Line 16:
 
| 0x10
 
| 0x10
 
| 0x10
 
| 0x10
| CTR for AES-CTR / IV for AES-CBC, generated by the RNG.
+
| IV, generated by the RNG.
 
|}
 
|}
  
Line 27: Line 27:
 
!  Size
 
!  Size
 
!  Description
 
!  Description
!  Algorithm Type
 
 
|-
 
|-
 
| 0x0
 
| 0x0
 
| 0x4020
 
| 0x4020
 
| Banner section
 
| Banner section
| AES-CBC
 
 
|-
 
|-
 
| 0x4020
 
| 0x4020
 
| 0xC0
 
| 0xC0
 
| Header section
 
| Header section
| AES-CBC
 
 
|-
 
|-
 
| 0x40E0
 
| 0x40E0
 
| 0x420
 
| 0x420
 
| Footer section
 
| Footer section
| AES-CBC
 
 
|-
 
|-
 
| 0x4500
 
| 0x4500
 
|  
 
|  
 
| Data for the 4 content sections are stored here.
 
| Data for the 4 content sections are stored here.
| AES-CTR
 
 
|}
 
|}
  

Revision as of 16:50, 22 April 2013

The DSiWare exported from a 3DS is located at "sdmc:/Nintendo 3DS/<ID0>/<ID1>/Nintendo DSiWare". Filenames are same format as DSi: "<TitleID-Low>.bin". The below sizes include the 0x20-byte block metadata.

DSiWare exported from 3DS use keyslots initialized by movable.sed. Each section is encrypted with AES-CBC.

Block Metadata

Offset Size Description
0x0 0x10 AES MAC
0x10 0x10 IV, generated by the RNG.

Each section begins with the actual encrypted data, followed by this block metadata.

File Structure

Offset Size Description
0x0 0x4020 Banner section
0x4020 0xC0 Header section
0x40E0 0x420 Footer section
0x4500 Data for the 4 content sections are stored here.

Header

Offset Size Description
0x0 0x38 Unknown
0x38 0x8 TWL TitleID for the exported title.
0x40 0x60 ?

Footer

Offset Size Description
0x0 0xD0 Hashes?
0xD0 0xE0 Normally all-zero?
0x1B0 0x20 SHA256 hash?
0x1D0 0x20 Normally all-zero?
0x1F0 0x3C ECDSA signature over the previous data, signed by the AP cert?
0x22C 0x180 ECDSA "APXXXXXXXXXXXXXXXX" cert signed by the CTCert, where X is random ASCII hex data.
0x3AC 0x54 ECDSA certificate, the last 0x14-bytes here are all-zero.