D049 - Containers are wrapped; the ELF is not at offset zero
decided · 2026-08-19 · observed from real material
orbistoun-elf was written expecting \x7fELF
at offset 0. Real containers are not shaped that way, and would all have
been rejected.
Observed, consistently across a commercial executable and three modules it ships:
| Outer magic | 54 14 f5 ee |
| Inner ELF begins at | offset 416 |
EI_CLASS / EI_DATA |
64-bit, little-endian |
EI_OSABI |
9 - ELFOSABI_FREEBSD |
e_machine |
0x3E - x86-64 |
e_type |
0xFE10 executable, 0xFE18 module |
Three things follow.
The offset must be read from the wrapper header, never
hardcoded. 416 held for every file inspected, and the header is
consistent with a 32-byte prologue followed by twelve 32-byte entries
(0c 00 at offset 0x18 reads as a count of 12;
32 + 12×32 = 416 exactly). That is a hypothesis fitting the
observations, not a specification - D010 applies, so the parser
derives the offset rather than assuming it.
EI_OSABI = 9 states the FreeBSD lineage in the
binary itself, rather than by inference. That is the foundation
of oracle #1 in TESTING.md, now confirmed
from primary evidence.
The generation split is visible inside one title.
The bundled sce_module/*.prx carry the current-generation
magic above; substituted fakelib/*.sprx in the same
directory carry 4f 15 3d 1d, the previous generation's. Two
wrapper formats will have to coexist eventually - but current-generation
is what to parse first, since it is what real material uses.
Amends D012: individual e_type values were held
unasserted pending verification. Two are now observed. That is evidence,
not a complete enumeration - record what has been seen, keep rejecting
what has not.