This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Phase 1.0D hardened-elfldr static model
|
||||
|
||||
The host-only model is in the separate chimera-retroarch fork at
|
||||
`tools/ps5_elfldr_model.py`. Its authority is `elfldr.c` at commit
|
||||
`197623058f509eddde18868dafcb92fdcac66464`, file SHA-256
|
||||
`9949f8e4037984d10f1f5aa498e4665593d1fac8a33614d7f2141349839bb803`.
|
||||
|
||||
It reproduces source checks and data operations for the initial size/magic and
|
||||
program-file bounds, ET_DYN/ET_EXEC, mapping range, PT_LOAD copies, relative
|
||||
relocations, protection layout, entry mapping, synthetic saved RIP, RSP, RDI,
|
||||
and 16 KiB argument-resource mapping. It inventories DT_NEEDED and undefined
|
||||
symbols but correctly records that SDK startup—not `elfldr_load`—resolves
|
||||
them.
|
||||
|
||||
The source does not validate several expected ELF properties: class, data
|
||||
encoding, machine, header entry sizes, segment overlap/alignment, and mapped
|
||||
entrypoint are not loader rejection conditions. The model reports these as
|
||||
source-validation gaps. It never invents stricter acceptance rules.
|
||||
|
||||
| Input | SHA-256 | Result |
|
||||
|---|---|---|
|
||||
| Phase-1.0B smoke | `16c04afe26c490b5071388dc9a32524d09d50d181b1baffbbc54bd96f0c2c688` | ACCEPTED_BY_STATIC_MODEL |
|
||||
| CRT canary | `c84c0fb43392ce17abc1e7e6be38b522f1b32a681fd516d684c3dbbf7b34b743` | ACCEPTED_BY_STATIC_MODEL |
|
||||
| early diagnostic | `092bcabc0f8717a648030c592aa0dc900f878952fb14ee453851a29f298ea7ee` | ACCEPTED_BY_STATIC_MODEL |
|
||||
| lifecycle reference | `bfb4a5cc768e162fe4c2fddf41c3978e152722918a39085277fd172cb95a7182` | ACCEPTED_BY_STATIC_MODEL |
|
||||
|
||||
Negative host copies prove deterministic rejection for bad magic, unsupported
|
||||
type, and out-of-file segment ranges. An unmapped entry yields
|
||||
`MODEL_INCOMPLETE`, while a wrong machine remains accepted with an explicit
|
||||
source-validation gap because the actual loader does not check it.
|
||||
|
||||
`ACCEPTED_BY_STATIC_MODEL` means only “no deterministic rejection in the
|
||||
modeled source path.” It is not proof of runtime allocation, kernel calls,
|
||||
imports, firmware behavior, receipt, entry, execution, notification, cleanup,
|
||||
or return.
|
||||
Reference in New Issue
Block a user