NRO: Difference between revisions
Jump to navigation
Jump to search
Based on the NSO page. |
(No difference)
|
Revision as of 21:24, 18 February 2018
NRO is the executable format for non-ExeFS binaries.
It starts with the NRO-start structure then the "NRO" header and mainly describes .text, .rodata, and .data segments (like a short-form of ELF program headers):
NRO Start
| Offset | Size | Description |
|---|---|---|
| 0x0 | 0x4 | Unused |
| 0x4 | 0x4 | MOD0 offset |
| 0x8 | 0x8 | Padding |
NRO Header
| Offset | Size | Description |
|---|---|---|
| 0x0 | 4 | Magic "NRO0" |
| 0x4 | 4 | ? |
| 0x8 | 4 | Total NRO filesize |
| 0xC | 4 | ? |
| 0x10 | 0x8 * 3 | SegmentHeader[3] |
| 0x28 | 0x4 | bssSize |
| 0x2C | 0x4 | ? |
| 0x30 | 0x20 | Value of "build id" from ELF's GNU .note section. Contains variable sized digest, up to 32bytes. |
| 0x50 | 0x10 | Padding |
| 0x60 | 0x10 | ? |
SegmentHeader
| Offset | Size | Description |
|---|---|---|
| 0x0 | 4 | FileOffset |
| 0x4 | 4 | Size |