Compare commits
merge into: scripte/rea:fix/nib-boolean-value-types
scripte/rea:main
scripte/rea:release-please--branches--main--components--rea-agents
scripte/rea:revert/7119-input-schema-fitting
scripte/rea:feat/native-matching-allowance-setting
scripte/rea:feat/browser-scenario-dry-run
scripte/rea:release-please--branches--main--components--rea-agents--release-notes
scripte/rea:docs/freebuff-version-guidance
scripte/rea:test/managed-caller-parameters-20261024
scripte/rea:codex/parser-fortythird-boundaries
scripte/rea:fix/6926-pinvoke-platform-decorations-20261023
scripte/rea:fix/6889-har-body-encoding-20261023
scripte/rea:fix/6888-sqlite-schema-budget-20261023
scripte/rea:fix/dependency-security-gates-6708
scripte/rea:cursor/evidence-overwrite-rebase-b4ac
scripte/rea:feat/4057-verify-native-exports
scripte/rea:fix/windows-acl-observer-overhead-20261022
scripte/rea:cursor/erlang-beam-restack-4476
scripte/rea:cursor/pe-certificate-review-bf32
scripte/rea:fix/6116-javascript-application-fs-errors
scripte/rea:fix/6061-unmapped-runtime-script-unknown
scripte/rea:feat/browser-scenario-summary
scripte/rea:fix/pe-certificates
scripte/rea:codex/verify-3407
scripte/rea:cursor/rebase-5699
scripte/rea:cursor/rebase-5352
scripte/rea:cursor/rebase-5600
scripte/rea:cursor/fix-cli-schema-omission-10a8
scripte/rea:codex/audit-hopper-shutdown-reasons-20261021
scripte/rea:fix/demangle-swift-omitted-record
scripte/rea:fix/nib-boolean-value-types
scripte/rea:cursor/cancellation-partial-observation-a5ac
scripte/rea:fix/ib-object-limit-reasons
scripte/rea:fix/electron-fuse-limit-advice
scripte/rea:fix/kuna-doctor-dangling-cache
scripte/rea:fix/fixed-budget-refusal-advice
scripte/rea:fix/js-ipc-listener-dedup
scripte/rea:fix/js-return-member-provenance
scripte/rea:fix/dmg-integrity-retry-advice
scripte/rea:fix/ida-doctor-readiness
scripte/rea:fix/kuna-version-probe-output-drain
scripte/rea:fix/legacy-swift-runtime-name-matching
scripte/rea:fix/dylib-lazy-load-commands
scripte/rea:fix/browser-scenario-startup-cancel
scripte/rea:fix/swift-nested-punycode-classification
scripte/rea:fix/compare-unselected-scopes
scripte/rea:fix/objc-method-budget-coverage
scripte/rea:fix/dmg-mounted-root-observations
scripte/rea:audit/ci-tests-20261019-round2
scripte/rea:release/6.7.0
scripte/rea:fix/wabt-cleanup-retry-resolution
scripte/rea:fix/electron-fuse-elf-pe-architecture
scripte/rea:fix/native-plist-descriptor-ownership
scripte/rea:fix/kuna-caller-cleanup-ownership
scripte/rea:experiment/atomic-codemode-20261016
scripte/rea:review/first-contributor-3776
scripte/rea:fix/call-resolution-full-read-cycles
scripte/rea:fix/member-mutation-selection-repeat
scripte/rea:experiment/atomic-re-tools-20261015
scripte/rea:perf/member-mutation-lazy-origins
scripte/rea:perf/static-network-mutation-index
scripte/rea:fix/hopper-startup-lifecycle
scripte/rea:audit/3050-windows-proof-20261015
scripte/rea:feat/windows-window-capture-2183
scripte/rea:audit/3049-windows-proof-20261015
scripte/rea:audit/3735-macos-fixtures-20261015
scripte/rea:fix/batch-decompile-null-pseudocode
scripte/rea:fix/kuna-inventory-honors-jobs
scripte/rea:experiment/browser-codemode-tool-design-20261015
scripte/rea:fix/hopper-clean-runtime-argv
scripte/rea:codex/review-fixes-pr-2400
scripte/rea:codex/review-2049-27f1b367
scripte/rea:review-fixes/pr-2787-routing
scripte/rea:fix/3360-scoped-this-emitters
scripte/rea:fix/3367-replaced-global-effects
scripte/rea:fix/3838-compact-any-value-items
scripte/rea:test/hopper-download-probe-20261015
scripte/rea:codex/windows-runtime-creation-red-green-20261015
scripte/rea:codex/windows-readonly-root-red-green-20261015
scripte/rea:codex/windows-root-share-red-green-20261015
scripte/rea:codex/exp-1685-win-mcp-startup
scripte/rea:codex/bug-sweep-20261015
scripte/rea:investigate/2190-windows-package-phases
scripte/rea:investigate/3543-macos-cli-deadline
scripte/rea:perf/3281-reverse-tools-feedback-quality
scripte/rea:fix/3406-hopper-doctor-fixture
scripte/rea:fix/3341-wrapper-require-test-context
scripte/rea:fix/3301-owned-uninstall-fixtures
scripte/rea:fix/3164-compiler-input-ownership
scripte/rea:fix/pcap-cleanup-stdout-newline-20261014
scripte/rea:perf/interface-builder-summary
scripte/rea:codex/review-fixes-pr-1977
scripte/rea:fix/ghidra-effective-jvm-platform
scripte/rea:codex/review-fixes-pr-2403
scripte/rea:fix/docs-turkish-rust-link-20261013
scripte/rea:fix/main-maintenance-ci-20261010
scripte/rea:fix/recover-binary-session-process-effects
scripte/rea:fix/main-sync-2087-captured-c6503ed
scripte/rea:codex/review-fixes-pr-2457
scripte/rea:codex/ci-required-cancellation-gate
scripte/rea:fix/main-format-baseline-20261013
scripte/rea:fix/setup-preserve-entry-fields
scripte/rea:cursor/restore-main-checks-1ffc
scripte/rea:fix/ghidra-bridge-hashmap-import
scripte/rea:codex/shared-ci-jadx-json-default-20261013
scripte/rea:codex/shared-ci-ghidra-test-groups-20261013
scripte/rea:codex/shared-ci-java-fixture-format-20261013
scripte/rea:codex/fix-intrinsic-invocation-boundaries
scripte/rea:test/release-preflight-reusable-jobs
scripte/rea:test/js-parameter-provenance-expectation
scripte/rea:fix/linux-hopper-verification-current
scripte/rea:test/2419-ghidra-elf-probe-size
scripte/rea:followup/pr-1544-native-ida
scripte/rea:codex/fold-pr-2230-contribution
scripte/rea:docs/readme-responsible-use
scripte/rea:fix/issue-2064
scripte/rea:fix/issue-2050
scripte/rea:fix/issue-2053
scripte/rea:fix/issue-1968
scripte/rea:fix/issue-1945
scripte/rea:experiment/codemode-bridge-20261011
scripte/rea:fix/tool-effects-negative-wording-1904-20261012
scripte/rea:fix/1842-electron-interop-provenance
scripte/rea:feat/recover-javascript-multi-input
scripte/rea:refactor/website-i18n-prep
scripte/rea:fix/nativeaot-pe-virtual-extent
scripte/rea:fix/browser-verifier-ci-hang
scripte/rea:fix/pe-resources-input-selection
scripte/rea:docs/beginner-friendly-guides
scripte/rea:docs/beginner-setup-guide
scripte/rea:fix/javascript-analysis-worker-1563
scripte/rea:fix/1649-ghidra-duplicate-names
scripte/rea:fix/javascript-export-keys-integration-1369
scripte/rea:test/maintenance-boundary-contracts-20261011
scripte/rea:review/javascript-export-keys-1369
scripte/rea:review/process-live-progress-1483
scripte/rea:test/javascript-1495-growth-ratio
scripte/rea:fix/ci-escape-timing
scripte/rea:docs/normalized-terminal-geometry-1450
scripte/rea:release/6.3.0
scripte/rea:archive/release-6.3.0-pr1381
scripte/rea:release/6.2.0
scripte/rea:fix/electron-preload-dynamic-override
scripte/rea:fix/javascript-self-referential-bundler-edges
scripte/rea:release/6.1.0
scripte/rea:cursor/grok-client-cherry-pick-0b56
scripte/rea:feat/signature-posture
scripte/rea:feat/dyld-shared-cache
scripte/rea:feat/artifact-integrity-policy
scripte/rea:feat/pkg-inventory
scripte/rea:release/6.0.0
scripte/rea:chore/sync-release-5.0.0
scripte/rea:release/5.0.0
scripte/rea:cursor/cloud-agent-node-787e
scripte/rea:fix/javascript-xhr-open-endpoints
scripte/rea:review/pr-711-realpath-fallback-wording
scripte/rea:cleanup/replay-confinement
scripte/rea:codex/test-suite-performance
scripte/rea:codex/issue-foundations
scripte/rea:codex/address-open-issues-2026-07-20
scripte/rea:agent/javascript-vite-rollup-esbuild-adapters
scripte/rea:agent/process-cleanup
scripte/rea:agent/triage-integration
scripte/rea:agent/unknown-commands-registry
scripte/rea:feat/mcp-identity-metadata
scripte/rea:morlvps/issue_cleanup
scripte/rea:codex/installer-redesign
scripte/rea:morl/roadmap-investigation-core
scripte/rea:morl/roadmap-investigation-docs
scripte/rea:release-please--branches--main--components--rea
scripte/rea:rea-agents-6.8.0
scripte/rea:rea-agents-6.7.0
scripte/rea:rea-agents-6.6.0
scripte/rea:experiment/atomic-codemode-wait-runtime-20261016
scripte/rea:rea-agents-6.5.0
scripte/rea:rea-agents-6.4.0
scripte/rea:rea-agents-6.3.0
scripte/rea:rea-agents-6.2.0
scripte/rea:rea-agents-6.1.0
scripte/rea:rea-agents-6.0.0
scripte/rea:rea-agents-5.0.0
scripte/rea:rea-agents-4.1.0
scripte/rea:rea-agents-4.0.1
scripte/rea:rea-agents-4.0.0
scripte/rea:rea-agents-3.2.1
scripte/rea:rea-agents-3.2.0
scripte/rea:rea-agents-3.1.0
scripte/rea:rea-agents-3.0.0
scripte/rea:rea-agents-2.7.0
scripte/rea:rea-agents-2.6.0
scripte/rea:rea-agents-2.5.1
scripte/rea:rea-agents-2.5.0
scripte/rea:rea-agents-2.4.0
scripte/rea:rea-agents-2.3.0
scripte/rea:rea-agents-2.2.0
scripte/rea:rea-agents-2.1.0
scripte/rea:rea-agents-2.0.0
scripte/rea:rea-agents-1.7.0
scripte/rea:rea-agents-1.6.0
scripte/rea:rea-agents-1.5.0
scripte/rea:rea-agents-1.4.0
scripte/rea:rea-agents-1.3.0
scripte/rea:rea-agents-1.2.0
scripte/rea:rea-agents-1.1.0
scripte/rea:rea-agents-1.0.0
scripte/rea:rea-agents-0.5.0
scripte/rea:rea-agents-0.4.0
scripte/rea:rea-agents-0.3.0
scripte/rea:rea-0.2.1
scripte/rea:rea-0.2.0
...
pull from: scripte/rea:codex/review-2049-27f1b367
scripte/rea:release-please--branches--main--components--rea-agents
scripte/rea:main
scripte/rea:revert/7119-input-schema-fitting
scripte/rea:feat/native-matching-allowance-setting
scripte/rea:feat/browser-scenario-dry-run
scripte/rea:release-please--branches--main--components--rea-agents--release-notes
scripte/rea:docs/freebuff-version-guidance
scripte/rea:test/managed-caller-parameters-20261024
scripte/rea:codex/parser-fortythird-boundaries
scripte/rea:fix/6926-pinvoke-platform-decorations-20261023
scripte/rea:fix/6889-har-body-encoding-20261023
scripte/rea:fix/6888-sqlite-schema-budget-20261023
scripte/rea:fix/dependency-security-gates-6708
scripte/rea:cursor/evidence-overwrite-rebase-b4ac
scripte/rea:feat/4057-verify-native-exports
scripte/rea:fix/windows-acl-observer-overhead-20261022
scripte/rea:cursor/erlang-beam-restack-4476
scripte/rea:cursor/pe-certificate-review-bf32
scripte/rea:fix/6116-javascript-application-fs-errors
scripte/rea:fix/6061-unmapped-runtime-script-unknown
scripte/rea:feat/browser-scenario-summary
scripte/rea:fix/pe-certificates
scripte/rea:codex/verify-3407
scripte/rea:cursor/rebase-5699
scripte/rea:cursor/rebase-5352
scripte/rea:cursor/rebase-5600
scripte/rea:cursor/fix-cli-schema-omission-10a8
scripte/rea:codex/audit-hopper-shutdown-reasons-20261021
scripte/rea:fix/demangle-swift-omitted-record
scripte/rea:fix/nib-boolean-value-types
scripte/rea:cursor/cancellation-partial-observation-a5ac
scripte/rea:fix/ib-object-limit-reasons
scripte/rea:fix/electron-fuse-limit-advice
scripte/rea:fix/kuna-doctor-dangling-cache
scripte/rea:fix/fixed-budget-refusal-advice
scripte/rea:fix/js-ipc-listener-dedup
scripte/rea:fix/js-return-member-provenance
scripte/rea:fix/dmg-integrity-retry-advice
scripte/rea:fix/ida-doctor-readiness
scripte/rea:fix/kuna-version-probe-output-drain
scripte/rea:fix/legacy-swift-runtime-name-matching
scripte/rea:fix/dylib-lazy-load-commands
scripte/rea:fix/browser-scenario-startup-cancel
scripte/rea:fix/swift-nested-punycode-classification
scripte/rea:fix/compare-unselected-scopes
scripte/rea:fix/objc-method-budget-coverage
scripte/rea:fix/dmg-mounted-root-observations
scripte/rea:audit/ci-tests-20261019-round2
scripte/rea:release/6.7.0
scripte/rea:fix/wabt-cleanup-retry-resolution
scripte/rea:fix/electron-fuse-elf-pe-architecture
scripte/rea:fix/native-plist-descriptor-ownership
scripte/rea:fix/kuna-caller-cleanup-ownership
scripte/rea:experiment/atomic-codemode-20261016
scripte/rea:review/first-contributor-3776
scripte/rea:fix/call-resolution-full-read-cycles
scripte/rea:fix/member-mutation-selection-repeat
scripte/rea:experiment/atomic-re-tools-20261015
scripte/rea:perf/member-mutation-lazy-origins
scripte/rea:perf/static-network-mutation-index
scripte/rea:fix/hopper-startup-lifecycle
scripte/rea:audit/3050-windows-proof-20261015
scripte/rea:feat/windows-window-capture-2183
scripte/rea:audit/3049-windows-proof-20261015
scripte/rea:audit/3735-macos-fixtures-20261015
scripte/rea:fix/batch-decompile-null-pseudocode
scripte/rea:fix/kuna-inventory-honors-jobs
scripte/rea:experiment/browser-codemode-tool-design-20261015
scripte/rea:fix/hopper-clean-runtime-argv
scripte/rea:codex/review-fixes-pr-2400
scripte/rea:codex/review-2049-27f1b367
scripte/rea:review-fixes/pr-2787-routing
scripte/rea:fix/3360-scoped-this-emitters
scripte/rea:fix/3367-replaced-global-effects
scripte/rea:fix/3838-compact-any-value-items
scripte/rea:test/hopper-download-probe-20261015
scripte/rea:codex/windows-runtime-creation-red-green-20261015
scripte/rea:codex/windows-readonly-root-red-green-20261015
scripte/rea:codex/windows-root-share-red-green-20261015
scripte/rea:codex/exp-1685-win-mcp-startup
scripte/rea:codex/bug-sweep-20261015
scripte/rea:investigate/2190-windows-package-phases
scripte/rea:investigate/3543-macos-cli-deadline
scripte/rea:perf/3281-reverse-tools-feedback-quality
scripte/rea:fix/3406-hopper-doctor-fixture
scripte/rea:fix/3341-wrapper-require-test-context
scripte/rea:fix/3301-owned-uninstall-fixtures
scripte/rea:fix/3164-compiler-input-ownership
scripte/rea:fix/pcap-cleanup-stdout-newline-20261014
scripte/rea:perf/interface-builder-summary
scripte/rea:codex/review-fixes-pr-1977
scripte/rea:fix/ghidra-effective-jvm-platform
scripte/rea:codex/review-fixes-pr-2403
scripte/rea:fix/docs-turkish-rust-link-20261013
scripte/rea:fix/main-maintenance-ci-20261010
scripte/rea:fix/recover-binary-session-process-effects
scripte/rea:fix/main-sync-2087-captured-c6503ed
scripte/rea:codex/review-fixes-pr-2457
scripte/rea:codex/ci-required-cancellation-gate
scripte/rea:fix/main-format-baseline-20261013
scripte/rea:fix/setup-preserve-entry-fields
scripte/rea:cursor/restore-main-checks-1ffc
scripte/rea:fix/ghidra-bridge-hashmap-import
scripte/rea:codex/shared-ci-jadx-json-default-20261013
scripte/rea:codex/shared-ci-ghidra-test-groups-20261013
scripte/rea:codex/shared-ci-java-fixture-format-20261013
scripte/rea:codex/fix-intrinsic-invocation-boundaries
scripte/rea:test/release-preflight-reusable-jobs
scripte/rea:test/js-parameter-provenance-expectation
scripte/rea:fix/linux-hopper-verification-current
scripte/rea:test/2419-ghidra-elf-probe-size
scripte/rea:followup/pr-1544-native-ida
scripte/rea:codex/fold-pr-2230-contribution
scripte/rea:docs/readme-responsible-use
scripte/rea:fix/issue-2064
scripte/rea:fix/issue-2050
scripte/rea:fix/issue-2053
scripte/rea:fix/issue-1968
scripte/rea:fix/issue-1945
scripte/rea:experiment/codemode-bridge-20261011
scripte/rea:fix/tool-effects-negative-wording-1904-20261012
scripte/rea:fix/1842-electron-interop-provenance
scripte/rea:feat/recover-javascript-multi-input
scripte/rea:refactor/website-i18n-prep
scripte/rea:fix/nativeaot-pe-virtual-extent
scripte/rea:fix/browser-verifier-ci-hang
scripte/rea:fix/pe-resources-input-selection
scripte/rea:docs/beginner-friendly-guides
scripte/rea:docs/beginner-setup-guide
scripte/rea:fix/javascript-analysis-worker-1563
scripte/rea:fix/1649-ghidra-duplicate-names
scripte/rea:fix/javascript-export-keys-integration-1369
scripte/rea:test/maintenance-boundary-contracts-20261011
scripte/rea:review/javascript-export-keys-1369
scripte/rea:review/process-live-progress-1483
scripte/rea:test/javascript-1495-growth-ratio
scripte/rea:fix/ci-escape-timing
scripte/rea:docs/normalized-terminal-geometry-1450
scripte/rea:release/6.3.0
scripte/rea:archive/release-6.3.0-pr1381
scripte/rea:release/6.2.0
scripte/rea:fix/electron-preload-dynamic-override
scripte/rea:fix/javascript-self-referential-bundler-edges
scripte/rea:release/6.1.0
scripte/rea:cursor/grok-client-cherry-pick-0b56
scripte/rea:feat/signature-posture
scripte/rea:feat/dyld-shared-cache
scripte/rea:feat/artifact-integrity-policy
scripte/rea:feat/pkg-inventory
scripte/rea:release/6.0.0
scripte/rea:chore/sync-release-5.0.0
scripte/rea:release/5.0.0
scripte/rea:cursor/cloud-agent-node-787e
scripte/rea:fix/javascript-xhr-open-endpoints
scripte/rea:review/pr-711-realpath-fallback-wording
scripte/rea:cleanup/replay-confinement
scripte/rea:codex/test-suite-performance
scripte/rea:codex/issue-foundations
scripte/rea:codex/address-open-issues-2026-07-20
scripte/rea:agent/javascript-vite-rollup-esbuild-adapters
scripte/rea:agent/process-cleanup
scripte/rea:agent/triage-integration
scripte/rea:agent/unknown-commands-registry
scripte/rea:feat/mcp-identity-metadata
scripte/rea:morlvps/issue_cleanup
scripte/rea:codex/installer-redesign
scripte/rea:morl/roadmap-investigation-core
scripte/rea:morl/roadmap-investigation-docs
scripte/rea:release-please--branches--main--components--rea
scripte/rea:rea-agents-6.8.0
scripte/rea:rea-agents-6.7.0
scripte/rea:rea-agents-6.6.0
scripte/rea:experiment/atomic-codemode-wait-runtime-20261016
scripte/rea:rea-agents-6.5.0
scripte/rea:rea-agents-6.4.0
scripte/rea:rea-agents-6.3.0
scripte/rea:rea-agents-6.2.0
scripte/rea:rea-agents-6.1.0
scripte/rea:rea-agents-6.0.0
scripte/rea:rea-agents-5.0.0
scripte/rea:rea-agents-4.1.0
scripte/rea:rea-agents-4.0.1
scripte/rea:rea-agents-4.0.0
scripte/rea:rea-agents-3.2.1
scripte/rea:rea-agents-3.2.0
scripte/rea:rea-agents-3.1.0
scripte/rea:rea-agents-3.0.0
scripte/rea:rea-agents-2.7.0
scripte/rea:rea-agents-2.6.0
scripte/rea:rea-agents-2.5.1
scripte/rea:rea-agents-2.5.0
scripte/rea:rea-agents-2.4.0
scripte/rea:rea-agents-2.3.0
scripte/rea:rea-agents-2.2.0
scripte/rea:rea-agents-2.1.0
scripte/rea:rea-agents-2.0.0
scripte/rea:rea-agents-1.7.0
scripte/rea:rea-agents-1.6.0
scripte/rea:rea-agents-1.5.0
scripte/rea:rea-agents-1.4.0
scripte/rea:rea-agents-1.3.0
scripte/rea:rea-agents-1.2.0
scripte/rea:rea-agents-1.1.0
scripte/rea:rea-agents-1.0.0
scripte/rea:rea-agents-0.5.0
scripte/rea:rea-agents-0.4.0
scripte/rea:rea-agents-0.3.0
scripte/rea:rea-0.2.1
scripte/rea:rea-0.2.0
19
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
e499a93f1e |
Merge remote-tracking branch 'origin/main' into sweep/2828
# Conflicts: # bridge/ghidra/ReaGhidraBridge.java # scripts/verify-real-ghidra-swift.mjs |
||
|
|
f1985d15fb | Merge branch 'main' into codex/review-2049-27f1b367 | ||
|
|
f531dd396c | Merge commit 'refs/codex/pr-refresh/main-20261014-phase2' into codex/pr-refresh-2828-20261014 | ||
|
|
ff48333a2b | chore: sync latest main into PR #2828 | ||
|
|
7fb429ac6d | style: format identity comparison and IDA runner | ||
|
|
f099269345 |
fix(comparison): recheck historical calls-only changes (#2223)
* fix(comparison): preserve incomplete function call evidence Keep missing, unknown, partial and unresolved call relationships unknown in function comparisons and reconstruction claims. Aggregate IDA caller and callee coverage without overwriting uncertainty. Validate with 144 focused tests, typecheck/lint, docs checks and test discovery. Real providers were not verified; the full headless IDA session suite requires unavailable Windows native controls. * fix(comparison): recheck historical calls-only changes --------- Co-authored-by: morluto <76467478+morluto@users.noreply.github.com> |
||
|
|
44253633d5 | fix(ci): isolate Linux Hopper process fixture inventory | ||
|
|
cb6e296834 | fix(android): make DEX descriptor pattern portable | ||
|
|
1e96613e9e | fix(ghidra): supervise Swift probes and cover retained text capacity | ||
|
|
b475d35e97 | chore: sync captured main into Swift decoder follow-up | ||
|
|
27f1b367b9 | test(ghidra): cover Swift decoder rejection and capacity branches | ||
|
|
f8f18e0bc7 | fix(ghidra): keep unresolved Swift tail-call sites unknown | ||
|
|
d3ba7243d7 | fix(ghidra): preserve Swift literal provenance and partial coverage | ||
|
|
59be5357df |
fix(ghidra): stop every flow at the literal budget and route omissions
Ending one flow from the evaluator leaves other queued flows running, so the budget now records a shared stop that every flow checks before it examines another instruction. A record that exceeds the budget is routed by that capacity result rather than by whether text was decoded, so a small literal over budget becomes an omission instead of a literal. When coverage is partial, the per site comparison keeps each literal's representation as well as its value, matching the full strings_names projection. |
||
|
|
560257b00e |
fix(ghidra): bound literal records and trace selects across branches
Every Swift literal record now pays a fixed cost against the dossier budget in addition to its text, so many empty or small literals are bounded as well. The first record that does not fit is kept as an omission and decoding stops there, which keeps the omission record itself bounded; omissions now describe small or large literals. The conditional select check searches every predecessor path for the reaching definitions, following register copies, so selects made before a branch into the use block are recognized. A dossier records Swift literals and their omissions together. Coverage reads omissions first, and strings_names compares every use site that neither side omitted: a decoded literal is known where it was recorded, and an absence is known only in a dossier whose decoding examined every use site. |
||
|
|
d5b2edc217 |
fix(ghidra): charge escaped JSON and follow copied selects
The Swift literal budget now charges the worst case per UTF-8 byte: UTF-16 text, six escaped JSON characters held in Gson's growing buffer and in the returned String, and the UTF-8 bytes written to the socket. Literals made of control characters can no longer exceed the reserved heap. A jump counts as a tail call only when every resolved target lies outside the function. The conditional select check follows register copies back to their definition, so selects copied into argument registers are recognized like selects written there directly. strings_names reports a change when both dossiers decoded different literals at the same use site, even when either side has omissions; it returns unknown only when no such use site disagrees. |
||
|
|
facd58973a |
fix(ghidra): budget Swift literal decoding and tighten use sites
Large literals now draw on one heap budget per dossier, measured once before decoding, instead of a separate check per literal. A literal that does not fit is listed in a new swift_string_literal_omissions field with its address, byte length and reason, so consumers read omissions from structured data rather than from limitation text. strings_names comparison checks referenced strings and names first and reports a change there even when Swift literal coverage differs; it returns unknown only when those facts match and literal coverage is absent on one side or partial. A computed jump counts as a tail call only when it has no resolved target inside the function, so jump tables no longer qualify, and a return requires a RETURN p-code operation, so traps no longer qualify. Decoded literals keep control characters, which Swift strings may contain and JSON escapes. The Swift verifier builds the literal fixture for arm64 on any Mac host and now also covers the empty string and a literal containing a tab. |
||
|
|
702dc9f932 |
fix(ghidra): bound Swift literal reads and compare decoded strings
Large immortal literals are measured against the remaining heap before allocation, and a failed fit stays visible as a limitation. The canonical empty string is kept. Small and large literals now require matching address nullability, and function comparison treats decoded literals as string evidence without equating a missing record to an empty one. |
||
|
|
2f89a1b5c0 |
feat(ghidra): decode Swift String literals in function dossiers
Swift passes a String as two words. Small literals keep their UTF-8 bytes inside those words, and immortal large literals keep a count plus a pointer to their bytes biased by 32. Ghidra creates no data reference for either, so analyze_function reported no strings for Swift code. On AArch64 programs that contain Swift metadata, the Ghidra bridge now runs constant propagation over the function and decodes register pairs where Swift consumes a String: consecutive argument registers at calls and tail calls, x0 and x1 at returns, and both registers of one STP. Large literals must resolve to terminated bytes inside one initialized block that is not executable. A pair whose registers both come from conditional selects is skipped, because Ghidra forks each select without correlating the condition and could otherwise pair words from different cases. Decoded values are a derivation from the ABI layout rather than observed references, so they appear in a new optional swift_string_literals field with their source instruction, registers and raw words, and in a matching inspect_analysis_view facet. referenced_strings is unchanged. Refs #2030 |