Commit Graph
400 Commits
Author SHA1 Message Date
morluto 14dd07e740 fix(exports): preserve ELF name byte identity 2026-10-27 12:17:29 +08:00
morluto 8aa6df2d86 fix(native): share otool build tool parsing 2026-10-27 11:52:21 +08:00
morluto bae84d1b93 fix(native): validate plist target identity 2026-10-27 10:48:42 +08:00
morluto 79b8219f29 fix(certificates): unify OID decoding and validate reports 2026-10-27 10:40:48 +08:00
morluto b0c48e8b65 fix(native): preserve mapping and literal coverage 2026-10-27 10:26:29 +08:00
morluto ded6542d93 refactor(plist): unify number source association 2026-10-27 10:22:33 +08:00
morluto f53c256886 fix(macho): unify fixed-width name decoding 2026-10-27 10:15:49 +08:00
morluto a905a71e31 fix(plist): preserve binary UID and dictionary identity 2026-10-27 09:49:28 +08:00
morluto 54fbfacfb1 fix(macho): preserve leading spaces in export identities 2026-10-27 08:34:42 +08:00
morluto 567ea4b1e8 refactor(ownership)!: consolidate legacy aliases
Migrate schema, installer, ASN.1, and tooling consumers to their owning definitions. Remove the redundant CI task entry and the deprecated Cutter command-local JSON flag.

BREAKING CHANGE: Replace Cutter --json=true or --json=false with --json-output=true or --json-output=false. Bare --json still controls CLI result formatting.
2026-10-27 06:31:23 +08:00
morluto 06c8e14b34 fix(native): retain lipo field declarations
Distinguish omitted slice fields from declarations that cannot be interpreted, and preserve their source in native results and artifact limitations. Keep structural fallback and capacity failures explicit.
2026-10-27 05:33:01 +08:00
morluto 3ca1cc5466 fix(filesystem): complete plist and limits probes
Read bounded plist format probes and Linux resource-limit reports through positive short reads before classifying their contents. Preserve explicit EOF, report capacity, physical failures and descriptor cleanup ownership.

Validated 66 focused tests and check:fast; nine new fault-injected cases fail against the previous implementation. Linux procfs was not verified on a real Linux host.
2026-10-27 03:18:56 +08:00
morluto bab49aaf7c refactor(artifacts): unify stable read failure ownership
Centralize completed file observations and cleanup error projection across stable-file providers while preserving each provider’s failure classification and exact cleanup leases. Cover BEAM finalization cancellation and devicetree cleanup retries.

Validated 223 focused lifecycle and MCP tests and check:fast.
2026-10-27 03:02:05 +08:00
morluto f6478c056f fix(providers): keep each inspection on one environment snapshot 2026-10-27 02:35:54 +08:00
morluto 55f72b5d53 fix(workers): preserve failure receipts and their cleanup owners 2026-10-27 02:16:08 +08:00
morluto e813c4c344 fix(pwntools): separate reply admission from debugger enrichment 2026-10-27 02:02:27 +08:00
morluto 624ebb2a1e refactor(elf): consolidate bounded string-table interpretation 2026-10-27 01:46:08 +08:00
morluto e405d685bc refactor(macho): centralize dylib command and string facts 2026-10-27 01:38:20 +08:00
morluto 31e8492faf refactor(artifacts): centralize completed snapshot observations
Normalize completed stable-file path, digest and length in one shared observation owner. Migrate thirteen identical provider projections while preserving their selected paths, schema checks and cleanup composition.

Keep specialized metadata and worker reply observations at their existing owners. Validation: shared real-descriptor coverage and provider lifecycle tests passed; build, typecheck, lint and formatting passed.
2026-10-27 01:27:03 +08:00
morluto f6805e29c3 refactor(pe): centralize resource tree facts across readers 2026-10-27 01:02:21 +08:00
morluto 74d5cab372 fix(native): account export and version text in UTF-8 bytes
Count retained UTF-8 text rather than UTF-16 code units, including exact-byte base64 spellings. Bound the decoded version-name map independently from output expansion, releasing replaced entries from its live storage charge.

Add real service/provider boundary controls for accepted and over-budget symbol names, version names and unused version metadata. Existing per-string bounds remain the allocation owner.

Validation: native parser, filesystem and CLI/MCP views passed; build, typecheck, lint and formatting passed. No serialized-report size cap, OOM reproduction or performance improvement is claimed.
2026-10-27 01:01:10 +08:00
morluto 60b55be7e7 fix(native): bound PE export names before intermediate retention
Charge PE alias names when storing them, before target interpretation can suppress output rows. Validate unused-slot names as bytes without retaining or decoding strings. Keep row and forwarder accounting separate so names are charged once.

Preserve alias ordering, malformed unused-name issues and ordinal-only suppression. Add production service/provider retention regressions using compact shared-pointer fixtures.

Validation: 43 focused parser, filesystem, CLI and stdio MCP tests; fresh build, typecheck, lint and formatting passed. Three bounded Node 24.22.1 measurement pairs showed median process RSS high-water 154000 to 93168 KiB; timing and sampled family memory have cache/startup/sampling limits. No Windows loader acceptance or OOM reproduction claim.
2026-10-27 00:40:35 +08:00
morluto 8423c5c6d0 refactor(macho): consolidate prefix interpretation across readers 2026-10-27 00:13:36 +08:00
morluto d27e3f8e89 fix(native): preserve import names across dyld text formats
Parse literal import framing and retain ambiguous boundaries. Consult undefined symbol-table names only when needed to distinguish producer spacing, with import and export captures owned separately.

Validation: 59 native tests passed and real Apple tools on inert arm64 fixtures reproduced the old loss and verified the fix. Fresh build, typecheck and lint passed. Small warm-task median elapsed was unchanged; cold costs and agent tokens were not measured.
2026-10-26 23:50:10 +08:00
YingNingandgensokyo-dev 4da7e46e9c fix(provider-selection): name whether a rejection came from availability or target support (#7220)
Distinguish local provider readiness failures from target-support refusals in shared CLI/MCP diagnostics, preserving original codes and evidence. Avoid claiming configured providers are unconfigured.

120 focused tests, static/docs checks and real ELF CLI/MCP verification pass. Hosted CI has the same four ADB failures as exact main d9908fd7a; three canceled shards remain unverified. Merge uses the user's explicit authorization to bypass proven main failures. Fresh Codex and Greptile reviews are clear.

Fixes #7214

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
2026-10-26 23:49:11 +08:00
morluto cadd5b75b3 refactor(elf): consolidate header and section-name interpretation 2026-10-26 23:40:04 +08:00
morluto eb06e263cb fix(plist): own dictionary decoding across Apple workflows
Preserve XML, OpenStep and binary dictionary keys at their format owners. Share validated binary reference facts with materialization while retaining scalar precision, UID identity and bounded expansion. Migrate archive, Interface Builder, native and app-bundle consumers, then remove obsolete key-omission accounting and schema copies.

Validated source regressions and compiled CLI/MCP workflows, including native plist fidelity and archive identity. Typecheck, lint, docs and test discovery pass. No performance benchmarks were required.
2026-10-26 22:20:00 +08:00
morluto cd68181c90 fix(providers): preserve report bytes and dictionary facts 2026-10-26 22:01:51 +08:00
morluto c06dc2d356 fix(native): retain completed debugger evidence through reply cleanup 2026-10-26 18:12:01 +08:00
morluto f2b4468183 fix(paths): preserve native selections across launch and publication 2026-10-26 17:56:47 +08:00
morluto da526fc014 fix(providers): preserve reply bytes and structured JSON ownership
Share strict UTF-8 JSON admission across bounded worker reports. Preserve IDA/JEB structured dictionaries through negotiated SDK validation and adapter decoding, retaining inherited tool validation and protocol handling.

Validated 240 tests, including real SDK/HTTP exchanges and firmware file reads; 83 host-specific cases skipped. Typecheck, lint, and discovery passed. Real-provider execution and modern MCP protocol behavior remain unverified.
2026-10-26 17:52:32 +08:00
morluto 8a65787507 refactor: consolidate parsed image ownership across consumers
Retain validated DOS relocation records in their domain owner and consume
those facts in Ghidra load-image preparation. Preserve ordered duplicate
aliases, overlapping writes, and original/final byte evidence.

Share FAT header facts across generic, native, and Hopper readers without
merging their distinct admission policies. Replace managed method bodies'
two identical mapping lookups with one owned offset-and-extent result.

Validation: 660 focused tests passed across 19 suites; typecheck, lint, and
test discovery passed. Hopper/Ghidra checks used fixtures and simulated
provider observations; no real external provider execution was performed.
2026-10-26 16:56:50 +08:00
morluto a7f50e3386 refactor: consolidate ELF and CLR record interpretation
Share ELF note headers across note inspection, Flutter build IDs, Node SEA,
and recorded-crash source binding. Decode REL/RELA records once for MIPS
shared-load analysis and IL2CPP linking, removing superseded scalar helpers.

Share the CLR header prefix between desktop detection and managed PE parsing
while preserving their distinct read bounds and admission policies. Cover
those differences and ignored R_NONE fields with production-boundary tests.

Validation: 493 focused tests passed, two existing skips; static checks and
test discovery passed. Public managed/desktop CLI and ELF notes CLI/MCP
workflows exercised; no real external analysis providers were run.
2026-10-26 16:50:08 +08:00
morluto eb51eb6915 fix(process): preserve selected launch paths and completed command output 2026-10-26 16:46:53 +08:00
morluto 6336fe5bb5 refactor: consolidate binary analysis admission and format ownership
Reuse the existing provider input admission helper across twelve services,
preserving cancellation, schema errors, path policies, and Evidence handling.
Share ELF dynamic records across Dart, MIPS, and IL2CPP readers, and reuse
Mach-O segment and section records for Node SEA location.

Require canonical DOS ownership before GPU PE section discovery so relocation
bytes cannot masquerade as a PE pointer. Cover valid short DOS headers and
the malformed case through both inventory and the public CLI.
2026-10-26 16:44:21 +08:00
morluto 7adfcc4467 fix: unify executable format ownership across artifact readers
Centralize ELF section and Godot trailer declarations while preserving caller admission policies. Route six PE entrypoints through canonical DOS ownership so relocation data cannot establish a PE header, and update NativeAOT interpretation identity and verifier dependency coverage.
2026-10-26 16:32:49 +08:00
morluto 9341b116ef refactor: consolidate binary artifact interpretation and fixture ownership
Share exact ELF program-header facts across nine consumers while preserving their admission and precision policies. Centralize conformance path and digest binding, retain verifier-specific checks, and route fixture-owner changes to CI qualification.
2026-10-26 16:21:11 +08:00
morluto 90199ff0ec refactor(elf): centralize symbol record decoding 2026-10-26 16:10:46 +08:00
morluto a7d71f47ee refactor(elf): centralize raw table declarations 2026-10-26 16:04:09 +08:00
morluto 0f64f1f855 refactor(macho): share bounded header declarations 2026-10-26 15:49:52 +08:00
morluto 981d806924 refactor(macho): centralize segment and section decoding 2026-10-26 15:40:10 +08:00
morluto 0929751798 refactor(macho): reuse canonical header declarations 2026-10-26 15:34:04 +08:00
morluto b9ee8fe057 refactor(pe): centralize fixed COFF header decoding 2026-10-26 15:20:02 +08:00
morluto ed7b3a2a10 refactor(macho): share header declarations across native readers 2026-10-26 14:20:01 +08:00
morluto 38ebe11a52 refactor(pe): centralize section header interpretation 2026-10-26 14:14:18 +08:00
morluto ba7ac7908d refactor(elf): carry parsed header facts into native consumers 2026-10-26 14:08:35 +08:00
morluto 5c4a6c467c refactor(pe): share optional header image and alignment facts 2026-10-26 14:04:45 +08:00
morluto 941838fdd9 refactor(elf): centralize fixed header type and flags decoding 2026-10-26 13:53:25 +08:00
Kaoru0822andClaude Opus 5.5 d32d9f2902 fix(lldb): keep the bridge's no-target proof through interruption (#7111)
When cancellation or the deadline interrupted LLDB after it had published
its bridge result, the tracer never read that result, so an explicit
`target_process_created: false` (or `target_process_exit_observed: true`)
was lost. The run kept a `native-target:unknown` marker that no cleanup
retry could release, wedging the tracer for every later trace.

Read the published result once LLDB's process group is stopped, even for
an interrupted run, and apply the same target-gone proof in cleanup retry.
Cancellation or timeout stays the primary outcome; a created target, a
truncated result, or a missing PID alone stays unresolved.

Fixes #5385

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 05:21:26 -07:00
Kaoru0822andClaude Opus 5.5 a8e5eaf1aa fix(macho): derive the runtime name of each Mach-O symbol (#7105)
inspect_macho reported only the symbol-table spelling (`_main`), while
LLDB, dlsym and observe_native_calls use the runtime spelling (`main`).
Passing a static name as a breakpoint silently selected a different
function, so results from the two tools could not be joined by name.

Keep `name` as the exact symbol-table fact and add a derived
`runtime_name` to every export and import row, produced by one shared
Mach-O symbol-name owner. Managed P/Invoke verification now uses the
same owner instead of its own underscore stripping.

Fixes #5298

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 05:19:54 -07:00