MOD: Difference between revisions

From Nintendo Switch Brew
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 59: Line 59:
| 0x4
| 0x4
| ModuleOffset (offset to runtime-generated module object, typically equal to .bss base)
| ModuleOffset (offset to runtime-generated module object, typically equal to .bss base)
|-
| 0x1C
| 0x4
| [19.0.0+] RelroStartOffset
|-
| 0x20
| 0x4
| [19.0.0+] FullRelroEndOffset
|-
| 0x24
| 0x4
| [19.0.0+] NxDebugLinkStartOffset
|-
| 0x28
| 0x4
| [19.0.0+] NxDebugLinkEndOffset
|-
| 0x2C
| 0x4
| [19.0.0+] NoteGnuBuildIdStartOffset
|-
| 0x30
| 0x4
| [19.0.0+] NoteGnuBuildIdEndOffset
|}
|}



Latest revision as of 22:18, 29 October 2025

MOD describes a module object. It is essentially a replacement for a PT_DYNAMIC program header.

ModuleHeaderLocation

This is "nn::rocrt::ModuleHeaderLocation".

Offset Size Description
0x0 0x4 [17.0.0+] Version ([1.0.0-16.1.0] Padding)
0x4 0x4 HeaderOffset
0x8 0x4 [17.0.0+] VersionOffset

ModuleHeader

This is "nn::rocrt::ModuleHeader".

Offset Size Description
0x0 0x4 Signature ("MOD0")
0x4 0x4 DynamicOffset
0x8 0x4 BssStartOffset
0xC 0x4 BssEndOffset
0x10 0x4 ExceptionInfoStartOffset
0x14 0x4 ExceptionInfoEndOffset
0x18 0x4 ModuleOffset (offset to runtime-generated module object, typically equal to .bss base)
0x1C 0x4 [19.0.0+] RelroStartOffset
0x20 0x4 [19.0.0+] FullRelroEndOffset
0x24 0x4 [19.0.0+] NxDebugLinkStartOffset
0x28 0x4 [19.0.0+] NxDebugLinkEndOffset
0x2C 0x4 [19.0.0+] NoteGnuBuildIdStartOffset
0x30 0x4 [19.0.0+] NoteGnuBuildIdEndOffset

ModuleVersion

With [17.0.0+] this structure is normally located immediately after the ModuleHeader. This stores the nnSdk version.

Offset Size Description
0x0 0x4 Major
0x4 0x4 Minor
0x8 0x4 Micro