Files
Ysopwnable 4fc6565b0f feat(native): inspect offline ELF layout through pwntools (#1037)
* feat(native): inspect offline ELF layout through pwntools

* fix(build): prepare offline ELF verification on clean runners

* fix(native): preserve snapshot acquisition cancellation

* fix(native): handle sectionless ELF and retain decoder diagnostics

* test(native): verify malformed symbol table entry sizes

* fix(native): respect inherited limits and unused segment fields

* fix(native): preserve packed relocations and decoder launch constraints

* fix(native): validate symbol spans and preserve resource failures

* fix(native): preserve diagnostic completeness and memory failures

* fix(native): guard bridge imports against allocation failures

* fix(native): validate relocation symbol and section references

* fix(native): retain diagnostics through compounded cleanup failures

* fix(native): preserve unresolved relocation section references

* fix(native): bound linkage evidence and preserve CPU signal diagnostics

* fix(native): preserve file-size resource failure evidence

* fix(native): retain opaque linkage names and late cancellation output

* test(native): make CPU-limit fixture robust across runners

* fix(native): verify resource failure branches before interpreting exits

* fix(native): validate declared ELF string references

* fix(native): validate section-name table before decoding

* fix(native): enforce canonical ELF name-table escapes
2026-10-08 14:22:08 +08:00

49 lines
1.4 KiB
TypeScript

import type { BinaryLayout } from "../../../src/domain/native/binaryLayout.js";
/** Small source-owned provider observation for validation and transport tests. */
export const binaryLayoutFixture = (
path = "/artifacts/source-owned.elf",
): BinaryLayout => ({
artifact: { path, sha256: "a".repeat(64), bytes: 128 },
format: "elf",
architecture: { machine: "EM_X86_64", bits: 64, byte_order: "little" },
image_type: "ET_REL",
entry_point: {
reported_value: "0x0",
meaning: "not-applicable",
execution_status: "unknown",
},
runtime_load_base: null,
sections: [],
segments: [],
symbols: [],
relocations: [],
packed_relative_relocations: [],
relocation_inventory_completeness: "unknown",
linkage: {
needed_libraries: [],
interpreters: [],
got: [],
plt: [],
convenience_maps_completeness: "unknown",
runtime_library_paths: null,
},
mitigations: {
evidence_kind: "inferred",
position_independent: false,
nx_indicator: null,
executable_stack_indicator: false,
stack_canary_indicator: false,
relro: null,
},
diagnostics: { stdout: "producer warning", stderr: "", truncated: false },
limitations: ["Runtime addresses remain unknown."],
});
/** Producer identity belongs to the test seam, not a simulated installed engine claim. */
export const BINARY_LAYOUT_TEST_PROVIDER = {
id: "fixture-layout",
name: "Source-owned layout seam",
version: "1",
} as const;