mirror of
https://github.com/morluto/rea.git
synced 2026-11-05 06:45:22 +00:00
Open
opened 2026-11-01 21:11:19 +00:00 by bsakaguchi
·
2 comments
No Branch/Tag specified
main
codex/procedure-reference-stacked
release-please--branches--main--components--rea-agents
release-please--branches--main--components--rea-agents--release-notes
codex/kuna-independent-retry
codex/byte-search-overlay-coverage
codex/open-failure-target-receipt
codex/kuna-xref-evidence
codex/ghidra-ambiguous-procedure-recovery
codex/function-source-bundle
codex/trace-function-integration-prototype
codex/snapshot-source-closure
codex/recorded-evidence-array-pages
codex/evidence-recovery-redesign
codex/trace-feature-address-scope
codex/call-discovery-scope
codex/ghidra-literal-candidate-evidence
codex/decompile-directory-independent-retry
codex/retry-provenance-base
codex/value-flow-capability-experiment
codex/ghidra-containing-instruction
cursor/readme-discord-button-ef9f
dependabot/github_actions/actions/setup-node-7.1.0
dependabot/github_actions/actions/upload-artifact-7.0.2
dependabot/npm_and_yarn/npm-minor-and-patch-d8d97ce6df
codex/kuna-1989
fix/8559-native-ui-fixture-ownership
fix/8555-go-verifier-mcp-ownership
codex/provider-capability-recovery
fix/8642-rizin-target-stdin
codex/ghidra-memory-effect-scope
codex/ghidra-annotation-entry-selector
codex/ghidra-readonly-recovery
codex/ghidra-regex-verifier-recovery
codex/evidence-discovery-view-guidance
fix/8545-bulk-append-overflow
fix/8428-navigation-refusal-alternatives
codex/address-context-recovery
codex/matching-member-limitations
codex/unknown-scope-contract
codex/evidence-view-guidance
feat/8373-native-trace-views
codex/ghidra-snapshot-verifier-binding
codex/elf-export-visibility
codex/evidence-view-recovery
codex/native-reference-cli-help
codex/provider-candidate-observation-scope
codex/kuna-session-verification
codex/ghidra-switch-lifetime-guidance
codex/pseudocode-paging-discovery
codex/clarify-evidence-view-support
codex/kuna-xrefs-selector-recovery
codex/context-capacity-recovery
codex/evidence-closure-large-links
codex/same-function-evidence-identity
codex/ghidra-verifier-inspected-jdk
codex/audit-guided-workflows
codex/crash-prompt-retained-dossiers
codex/analysis-view-error-recovery
codex/kuna-verifier-target-selection
codex/ghidra-selected-project-call-coverage
codex/docs-native-analysis-scope
codex/ghidra-java-socket-boundary
codex/ghidra-retained-snapshot-verifier
codex/ghidra-search-inventory-facts
fix/8284-zero-argument-parameter-bindings
fix/8198-ui-action-handler-offset
fix/8257-elf-entry-label-identity
fix/8304-deferred-output-schema-projection
fix/8277-call-path-computed-target-uncertainty
fix/pr-8089-conflicts
fix/ci-static-duplicate-export
dependabot/npm_and_yarn/lint-staged-17.6.0
dependabot/github_actions/actions/download-artifact-8.0.2
dependabot/npm_and_yarn/write-file-atomic-8.0.0
dependabot/npm_and_yarn/canonicalize-5.1.0
dependabot/github_actions/actions/cache/restore-6.1.0
dependabot/npm_and_yarn/toon-format/toon-4.4.0
dependabot/github_actions/actions/deploy-pages-5.0.1
codex/review-fixes-pr-2403
codex/review-fixes-pr-2400
codex/process-terminal-width
codex/test-brittleness-cleanup
verify/7167-browser-connect-macos
fix/7167-browser-connect
feat/native-matching-allowance-setting
feat/browser-scenario-dry-run
test/managed-caller-parameters-20261024
codex/parser-fortythird-boundaries
fix/6926-pinvoke-platform-decorations-20261023
fix/6889-har-body-encoding-20261023
fix/6888-sqlite-schema-budget-20261023
fix/dependency-security-gates-6708
cursor/evidence-overwrite-rebase-b4ac
feat/4057-verify-native-exports
fix/windows-acl-observer-overhead-20261022
cursor/erlang-beam-restack-4476
cursor/pe-certificate-review-bf32
fix/6116-javascript-application-fs-errors
fix/6061-unmapped-runtime-script-unknown
feat/browser-scenario-summary
fix/pe-certificates
codex/verify-3407
cursor/rebase-5699
cursor/rebase-5352
cursor/rebase-5600
cursor/fix-cli-schema-omission-10a8
codex/audit-hopper-shutdown-reasons-20261021
fix/demangle-swift-omitted-record
fix/nib-boolean-value-types
cursor/cancellation-partial-observation-a5ac
fix/ib-object-limit-reasons
fix/electron-fuse-limit-advice
fix/kuna-doctor-dangling-cache
fix/fixed-budget-refusal-advice
fix/js-ipc-listener-dedup
fix/js-return-member-provenance
fix/dmg-integrity-retry-advice
fix/ida-doctor-readiness
fix/kuna-version-probe-output-drain
fix/legacy-swift-runtime-name-matching
fix/dylib-lazy-load-commands
fix/browser-scenario-startup-cancel
fix/swift-nested-punycode-classification
fix/compare-unselected-scopes
fix/objc-method-budget-coverage
fix/dmg-mounted-root-observations
audit/ci-tests-20261019-round2
release/6.7.0
fix/wabt-cleanup-retry-resolution
fix/electron-fuse-elf-pe-architecture
fix/native-plist-descriptor-ownership
fix/kuna-caller-cleanup-ownership
experiment/atomic-codemode-20261016
review/first-contributor-3776
fix/call-resolution-full-read-cycles
fix/member-mutation-selection-repeat
experiment/atomic-re-tools-20261015
perf/member-mutation-lazy-origins
perf/static-network-mutation-index
fix/hopper-startup-lifecycle
audit/3050-windows-proof-20261015
feat/windows-window-capture-2183
audit/3049-windows-proof-20261015
audit/3735-macos-fixtures-20261015
fix/batch-decompile-null-pseudocode
fix/kuna-inventory-honors-jobs
experiment/browser-codemode-tool-design-20261015
fix/hopper-clean-runtime-argv
codex/review-2049-27f1b367
review-fixes/pr-2787-routing
fix/3360-scoped-this-emitters
fix/3367-replaced-global-effects
fix/3838-compact-any-value-items
test/hopper-download-probe-20261015
codex/windows-runtime-creation-red-green-20261015
codex/windows-readonly-root-red-green-20261015
codex/windows-root-share-red-green-20261015
codex/exp-1685-win-mcp-startup
codex/bug-sweep-20261015
investigate/2190-windows-package-phases
investigate/3543-macos-cli-deadline
perf/3281-reverse-tools-feedback-quality
fix/3406-hopper-doctor-fixture
fix/3341-wrapper-require-test-context
fix/3301-owned-uninstall-fixtures
fix/3164-compiler-input-ownership
fix/pcap-cleanup-stdout-newline-20261014
perf/interface-builder-summary
codex/review-fixes-pr-1977
fix/ghidra-effective-jvm-platform
fix/docs-turkish-rust-link-20261013
fix/main-maintenance-ci-20261010
fix/recover-binary-session-process-effects
codex/review-fixes-pr-2457
codex/ci-required-cancellation-gate
fix/main-format-baseline-20261013
fix/setup-preserve-entry-fields
cursor/restore-main-checks-1ffc
fix/ghidra-bridge-hashmap-import
codex/shared-ci-jadx-json-default-20261013
codex/shared-ci-ghidra-test-groups-20261013
codex/shared-ci-java-fixture-format-20261013
codex/fix-intrinsic-invocation-boundaries
test/release-preflight-reusable-jobs
test/js-parameter-provenance-expectation
fix/linux-hopper-verification-current
test/2419-ghidra-elf-probe-size
followup/pr-1544-native-ida
codex/fold-pr-2230-contribution
docs/readme-responsible-use
fix/issue-2064
fix/issue-2050
fix/issue-2053
fix/issue-1968
fix/issue-1945
experiment/codemode-bridge-20261011
fix/tool-effects-negative-wording-1904-20261012
fix/1842-electron-interop-provenance
feat/recover-javascript-multi-input
refactor/website-i18n-prep
fix/nativeaot-pe-virtual-extent
fix/browser-verifier-ci-hang
fix/pe-resources-input-selection
docs/beginner-friendly-guides
docs/beginner-setup-guide
fix/javascript-analysis-worker-1563
fix/1649-ghidra-duplicate-names
fix/javascript-export-keys-integration-1369
test/maintenance-boundary-contracts-20261011
review/javascript-export-keys-1369
review/process-live-progress-1483
test/javascript-1495-growth-ratio
fix/ci-escape-timing
docs/normalized-terminal-geometry-1450
release/6.3.0
archive/release-6.3.0-pr1381
release/6.2.0
fix/electron-preload-dynamic-override
fix/javascript-self-referential-bundler-edges
release/6.1.0
cursor/grok-client-cherry-pick-0b56
feat/signature-posture
feat/dyld-shared-cache
feat/artifact-integrity-policy
feat/pkg-inventory
release/6.0.0
chore/sync-release-5.0.0
release/5.0.0
cursor/cloud-agent-node-787e
fix/javascript-xhr-open-endpoints
review/pr-711-realpath-fallback-wording
cleanup/replay-confinement
codex/test-suite-performance
codex/issue-foundations
codex/address-open-issues-2026-07-20
agent/javascript-vite-rollup-esbuild-adapters
agent/process-cleanup
agent/triage-integration
agent/unknown-commands-registry
feat/mcp-identity-metadata
morlvps/issue_cleanup
codex/installer-redesign
morl/roadmap-investigation-core
morl/roadmap-investigation-docs
release-please--branches--main--components--rea
rea-agents-6.8.0
rea-agents-6.7.0
rea-agents-6.6.0
experiment/atomic-codemode-wait-runtime-20261016
rea-agents-6.5.0
rea-agents-6.4.0
rea-agents-6.3.0
rea-agents-6.2.0
rea-agents-6.1.0
rea-agents-6.0.0
rea-agents-5.0.0
rea-agents-4.1.0
rea-agents-4.0.1
rea-agents-4.0.0
rea-agents-3.2.1
rea-agents-3.2.0
rea-agents-3.1.0
rea-agents-3.0.0
rea-agents-2.7.0
rea-agents-2.6.0
rea-agents-2.5.1
rea-agents-2.5.0
rea-agents-2.4.0
rea-agents-2.3.0
rea-agents-2.2.0
rea-agents-2.1.0
rea-agents-2.0.0
rea-agents-1.7.0
rea-agents-1.6.0
rea-agents-1.5.0
rea-agents-1.4.0
rea-agents-1.3.0
rea-agents-1.2.0
rea-agents-1.1.0
rea-agents-1.0.0
rea-agents-0.5.0
rea-agents-0.4.0
rea-agents-0.3.0
rea-0.2.1
rea-0.2.0
Labels
Clear labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
Mirrored from GitHub Pull Request
question
roadmap
triage
No labels
area: bridge
area: bridge
area: build
area: build
area: build
area: cli
area: domain
area: evidence
area: mcp
area: native
area: providers
area: runtime
area: server
area: setup
area: tests
bug
design
documentation
enhancement
enhancement
enhancement
experiment
help wanted
i18n
invalid
P0: critical
P1: high
P2: medium
P2: medium
P2: medium
P3: low
performance
provider-request
pull-request
question
roadmap
triage
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
morluto/rea#6462
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @morluto on GitHub (Oct 30, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/8175
Before submitting
Decision needed
Should an analyst who selects Kuna be able to analyze a caller-described headerless binary through the existing
open_binaryworkflow, and what verified subset of architecture and load semantics should be supported?Context and evidence
On macOS arm64 with REA
47fa6ab3795d547207001ffb01643c0aa39dcad8, Ghidra 12.1.4, and official Kuna 1.833, I created the six x86-64 bytesb8 2a 00 00 00 c3without executing them. Direct Kunafunctions --raw-image --target x86:LE:64:default --base 0x400000 --entry 0x400000 --jsonfound one function; directdecompile ... --raw-image --target x86:LE:64:default --base 0x400000 --define-function 0x400000=audit_answer --jsonreturned a function returning0x2a. REA MCPopen_binarywithformat=raw-binary,architecture=x86_64,entry_point=0x400000, andprovider_id=kunareturnedcapability_unavailable; the same REA request selecting Ghidra opened, listed, and decompiled the fixture.This is a capability gap, not evidence that REA promised Kuna support or that all raw images work. Ghidra is a working alternative when installed. The experiment covers one six-byte fixture, one host and one Kuna version, not other architectures, malformed images, or cache and lifecycle behavior.
Additional 1.988 workflow control (macOS arm64). Using official Kuna 1.988 and REA
ae8223ccdfa0d5dbc659ddcbb7d6acf360343c3f(an unmerged branch), I analyzed a caller-created, unexecuted 12-byte x86-64 imagee8 01 00 00 00 c3 b8 2a 00 00 00 c3, base and entry0x400000(SHA-2561e5485cf1a26f5a853c48b476fc31ba9afd2d5597f7c061a957cfd7c088da295). Its first function calls0x400006; the second returns 42. The file digest was unchanged.functionswith--raw-image --target x86:LE:64:default --base 0x400000 --entry 0x400000found both functions.decompilewith the raw target/base and--define-function 0x400006=audit_answerreturned0x2a.decompile-projectwith raw target/base/entry exported pseudocode and assembly containing the call and return.decompile-graphexplicitly rejected--raw-image;xrefs,strings,read, anddisassemblereported it as an unknown option. These observations do not rule out another supported invocation or future releases. REA currently usesdecompile-graph,xrefs, andstringsfor distinct workflows, so project export alone does not establish those workflows' coverage.open_binaryrequest with explicit Kuna returnedcapability_unavailable. Selecting Ghidra 12.1.4 opened the image;list_proceduresfound both addresses,procedure_pseudo_codereturned0x2a,procedure_calleesandxrefsreturned the call relationship, andread_bytesreturned the original 12 bytes. Successful outputs validated against the advertised output schemas.This evidence suggests that admitting raw input requires per-workflow capability and coverage decisions, not simply passing raw flags to every existing Kuna command. It does not establish broader raw-image support, cache behavior, or other architectures.
Expected interaction with targets
Read the selected local file and launch a caller-supplied Kuna process. No target execution is proposed. Output and cache effects would need to follow the existing Kuna provider contract.
Boundary details (optional)
Preserve the exact architecture, load mapping, entry and provider identity in the analysis profile and cache keys. Check raw-image support on every producer invoked by the actual REA workflows; do not assume that all Kuna commands accept the same flags, inventory or reference semantics. Returning an empty inventory or silently switching providers would misrepresent coverage.
Options and tradeoffs
Compare supporting only the current REA raw contract and separately verified per-architecture profiles, versus requiring Ghidra for this task. Do not expose unvalidated upstream target IDs simply because Kuna accepts them. Independent load-base and entry selection is already under discussion in #4246 and should remain a shared contract question rather than a Kuna-only flag.
Verification available so far
I have a prototype or observed results
Success criteria and open questions
If admitted, exercise actual CLI and MCP open, inventory, pseudocode, references, failure diagnostics and cache reuse on representative raw fixtures; test mismatched or invalid architecture and entry and preserve coverage limitations. Establish any required scope decision and report unverified configurations.
References
Existing raw import design: https://github.com/morluto/rea/issues/4246
Kuna CLI documentation: https://github.com/Noelo-Lab/kuna/blob/v1.833/docs/cli.md
cc @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0
AArch64 / Kuna 1.989 control
On macOS arm64 with Kuna 1.989, Ghidra 12.1.4 and REA checkout
9ebbe67e0, I created the unexecuted 16-byte AArch64 image02 00 00 94 c0 03 5f d6 40 05 80 52 c0 03 5f d6(SHA-25626b06308b7da056ef20f1e938d173d5119651c773d56b337d3713d5b73a4da96), mapped at and seeded from0x400000. Direct Kunafunctions --raw-image --target AARCH64:LE:64:v8A:default --base 0x400000 --entry 0x400000 --jsonfound entries at0x400000and0x400008; direct rawdecompilewith a defined function at the latter returned0x2a. An entry at0x400100failed as outside the mapped range. The target digest remained unchanged.In compact and full real stdio MCP profiles, REA explicitly rejected a Kuna raw-binary open as
capability_unavailablewith the Kuna target-format reason. Ghidra opened the same caller-selected mapping, listed both entries, decompiled the second to a return of0x2a, found the first function's call to the second, and returned all 16 original bytes. Successful replies validated against the advertised output schemas. As with the prior x86-64 control, direct Kuna 1.989 rejects--raw-imagefordecompile-graph, and reports that option unknown forxrefs,strings,read,disassemble, andraw-pcode; this is a check of that invocation shape, not proof that no other route exists.The AArch64 control strengthens the case for investigating a bounded raw decompilation route but does not establish parity for REA's separate reference, byte-read, and graph workflows. Ghidra remains the exercised REA alternative. Raw Thumb, independent base/entry selection, cache isolation, malformed images, other hosts, and future Kuna versions remain outside this control.
Raw discovery does not establish entry reachability
Kuna 1.989's embedded raw-image documentation says the default
rawdiscoversweeps executable bytes for direct-call targets. I checked the distinction with an unexecuted, caller-created AArch64 raw imagec0 03 5f d6 03 00 00 94 00 00 00 00 00 00 00 00 c0 03 5f d6, mapped and seeded at0x400000(SHA-256acf2f8b5ad05684adf009910adecedef31ab110efbc1b78b31649c0fb8e7a7d4). The entry instruction isret; bytes at0x400004encode a direct call to0x400010but follow that return. Default direct Kunafunctionsreported entries at0x400000and0x400010;--option rawdiscover offreported only the seeded entry. Both inventories gave sizes spanning bytes beyond the entry's return, so these sizes should not be interpreted as independently verified function bodies. This does not prove the second location cannot be a separate entry.As an independent control, REA with Ghidra 12.1.4 listed only the seeded entry, showed its assembly as
ret, and returned no callees for it; outputs passed their advertised MCP schemas. The file digest remained unchanged. These are different static discovery policies, not a universal verdict about which inventory is correct. Any future Kuna raw integration should expose discovery method and its coverage limitations, retain caller seeds and configuration in identity, and avoid describing sweep-discovered targets as proven reachable from the entry. The direct Kuna raw project export for the prior 16-byte control included labeled assembly with the direct call, but a formatted assembly line alone does not supply a validated general call-graph or xref contract.@morluto commented on GitHub (Oct 30, 2026):
A further real-provider check on macOS arm64 with Kuna 1.986 clarifies why raw admission needs operation-level capability decisions, not just a loader flag.
On a self-built, unexecuted 12-byte x86-64 raw image, the first function contains a direct call to a second function, which returns
0x2a. With--raw-image --target x86:LE:64:default --base 0x400000 --entry 0x400000, directkuna functionsdiscovered both entries; individually decompiling each worked. With both entries supplied,decompile-project --jobs 1exported two bodies and assembly containing the expected direct call, reporting zero failures. These are provider observations on one small image; the assembly is a human-readable listing, not a verified replacement for typed reference Evidence.In separate direct invocations,
decompile-graphrejected--raw-imageexplicitly (exit 2);xrefs,disassemble, andreadrejected it as an unknown option (exit 2). On a separate three-entry raw fixture,functions --reachable-fromanddecompile-all --reachable-fromexplicitly rejected that combination because raw input lacks required object metadata. Thus the current REA/Kuna call-graph/xref producers cannot simply receive the same raw arguments as the project-export producer. This is not a blanket claim that no upstream raw reference analysis is possible through any other interface.For the 12-byte fixture, real REA/Kuna
open_binarycorrectly returnedcapability_unavailableunder today's contract. REA/Ghidra on the same explicit raw configuration found both functions, returned the original 12 bytes, reported the call and incoming reference, and traversed a two-node graph. Neither binary was executed and their SHA-256 values stayed unchanged. This supports a potential partial Kuna lane only if unavailable graph/reference operations are clearly represented and all admitted workflows, cache identities and controls are separately verified; it does not establish full parity or suggest silently falling back to Ghidra.@morluto commented on GitHub (Oct 31, 2026):
Looping in @gensokyo-dev @kaoru0822-kitauji @N0zoM1z0 for visibility on the Ghidra, Kuna, and REA tool-design investigation.