Difference between revisions of "FIRM"

From 3dbrew
Jump to navigation Jump to search
m
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
This is the file format for the [[Title list#00040138 - System Firmware|3DS' Firmware]], it contains four 'sections' of ARM code (ARM9 and ARM11). The firmware sections do not appear to be encrypted in the FIRM format.
+
This is the file format for the [[Title list#00040138 - System Firmware|3DS' Firmware]], it contains four 'sections' of ARM code (ARM9 and ARM11). The firmware sections are not encrypted in the FIRM format.
  
  
Line 38: Line 38:
 
|  0x100
 
|  0x100
 
|  0x100
 
|  0x100
Header Signature
+
RSA-2048 signature of the FIRM header, using SHA-256.
 
|}
 
|}
  

Revision as of 13:36, 23 August 2012

Overview

This is the file format for the 3DS' Firmware, it contains four 'sections' of ARM code (ARM9 and ARM11). The firmware sections are not encrypted in the FIRM format.


A structural example of a FIRM file (created using the specs in ctrtool) can be found here (Note does not contain ARM code, it's just a structural example)

FIRM Header

OFFSET SIZE DESCRIPTION
0x000 4 Magic 'FIRM'
0x004 4 Reserved1
0x008 4 ARM11 Entrypoint
0x00C 4 ARM9 Entrypoint
0x010 0x030 Reserved2
0x040 0x0C0 (0x030*4) Firmware Section Headers
0x100 0x100 RSA-2048 signature of the FIRM header, using SHA-256.

Firmware Section Headers

OFFSET SIZE DESCRIPTION
0x000 4 Offset
0x004 4 Address
0x008 4 Size
0x00C 4 Firmware Type ('0'=ARM9/'1'=ARM11)
0x010 0x020 SHA-256 Hash of Firmware Section