MOD

Revision as of 22:18, 29 October 2025 by Hexkyz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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