Skip to content

v1.43

tagged this 04 Sep 04:57
The previous build dispatched with PT_DYNAMIC parsed but unprocessed.
A DYN-style ORBIS image keeps absolute data pointers at link-time
values until DT_RELA is applied; the current image carries 120,333
RELA entries (119,961 R_X86_64_RELATIVE, per DT_RELACOUNT).

- elf_loader: capture and process PT_DYNAMIC after mapping. Applied
  relocation classes: R_X86_64_RELATIVE (target validated writable
  before each store) and R_64/GLOB_DAT/JUMP_SLOT whose symbol is
  defined in the image's own dynsym. Unresolved classes are counted,
  never guessed: undefined-symbol imports (815 on this image: 341
  R_64, 31 GLOB_DAT, 443 JUMP_SLOT) form the HLE/NID worklist,
  IRELATIVE and the rest are logged by class. The first three
  relocations log old/new values plus the target stream offset for
  offline verification (dd + sha256).
- syscalls: add GuestPcRing, a 64-slot per-run ring recording the
  guest RIP at every syscall bridge entry. Dumped on exec epilogue
  and on unclaimed faults so crash reports show how far the guest
  progressed; an empty ring (seq=0) proves the bridge was never
  reached.
- EmuScreen: run the execution probe on every boot attempt instead
  of once per process (previous builds skipped re-execution after a
  contained crash). Attempt counter rides exec_probe_run events.

Host test (scripts/host_reloc_test.cpp): the production loader run
against the device-extracted inner ELF passes 12/12 checks covering
counts, byte-level relocation values, and the entry proof.

Build: versionName 1.43 (versionCode 44).
Assets 2
Loading