[GH-ISSUE #2924] test(ghidra): restore alias edits before fresh CLI parity checks #1028

Closed
opened 2026-10-15 18:30:28 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/2924

Reproduction

Pinned main d4f0c5e664e26fe7ed1566dcc4b85ea9b57d52da, Linux x64, real Ghidra12.1.4/JDK21:

node scripts/verify-real-ghidra-dos.mjs

The actual source-owned DOS lane fails at line379 after167.03s. cliWindow.normalized_result.procedure.name is entry; the current MCP session's read_function_instructions reports rea_same_address_alias. All body ranges and instruction bytes match. Original executable bytes remain unchanged.

Cause and expected behavior

The shared verifyGhidraAddressBoundaries helper deliberately sets equivalent address spellings to rea_same_address_alias, confirms that a conflicting alias batch is rejected, and returns without restoring the previous name. The later DOS parity assertion compares this edited ephemeral MCP database with a fresh CLI analysis. Both providers report their actual states correctly; this is a verification fixture-lifecycle defect.

Own and restore the temporary naming state at the boundary helper, using observed naming facts and retaining overflow, alias-collision and no-target-byte-mutation protections. Inspect its other consumers before deciding restoration scope. Preserve a failed restoration as a real failure. Verify the complete actual DOS/affected caller lanes rather than accepting a names-only assertion weakening.

Scope

No native program execution, paid Hopper feature, GUI control or original-file mutation is needed. This report does not allege a production Ghidra CLI/MCP parity failure.

Originally created by @N0zoM1z0 on GitHub (Oct 13, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/2924 ## Reproduction Pinned main `d4f0c5e664e26fe7ed1566dcc4b85ea9b57d52da`, Linux x64, real Ghidra12.1.4/JDK21: ```sh node scripts/verify-real-ghidra-dos.mjs ``` The actual source-owned DOS lane fails at line379 after167.03s. `cliWindow.normalized_result.procedure.name` is `entry`; the current MCP session's read_function_instructions reports `rea_same_address_alias`. All body ranges and instruction bytes match. Original executable bytes remain unchanged. ## Cause and expected behavior The shared `verifyGhidraAddressBoundaries` helper deliberately sets equivalent address spellings to `rea_same_address_alias`, confirms that a conflicting alias batch is rejected, and returns without restoring the previous name. The later DOS parity assertion compares this edited ephemeral MCP database with a fresh CLI analysis. Both providers report their actual states correctly; this is a verification fixture-lifecycle defect. Own and restore the temporary naming state at the boundary helper, using observed naming facts and retaining overflow, alias-collision and no-target-byte-mutation protections. Inspect its other consumers before deciding restoration scope. Preserve a failed restoration as a real failure. Verify the complete actual DOS/affected caller lanes rather than accepting a names-only assertion weakening. ## Scope No native program execution, paid Hopper feature, GUI control or original-file mutation is needed. This report does not allege a production Ghidra CLI/MCP parity failure.
bsakaguchi 2026-10-15 18:30:28 +00:00
Sign in to join this conversation.
No milestone
No project
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#1028
No description provided.