rea/tests/conformance
Fernando Pereira d1aaeee400
feat(ida): support optional native IDA Free MCP in attached mode (#1544)
Add an explicit attached native IDA MCP compatibility profile while preserving the legacy and headless workflows. Keep recorded input identity, complete source observations and the user's open GUI database. Batch unique callee lookups, conservatively prefilter literal strings, preserve Unicode matching and unavailable caller coverage, and require distinct-function switching in native verification.

Verified with Windows IDA Pro 9.3 and the native MCP plugin built from c9d15d98e8a143fc74f6e14037c48f63889b6d6c with a loopback listener. Production CLI/MCP and an unchanged Windows whoami.exe passed. Windows IDA Free was not used. No personal paths or license registration information are included.

Validation: 200 focused tests, static and documentation checks, architecture guards and discovery passed. Historical same-main warm task measurements improved from 675 to 317 ms; response token estimates fell from 16618 to 11509. Fresh-start, overall CPU and memory improvement were not established. Detailed scope is in experiments/analysis-efficiency/ida-native-windows.md.

Co-authored-by: imissapixel <140405963+imissapixel@users.noreply.github.com>
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com>
Co-authored-by: N0zoM1z0 <161784452+N0zoM1z0@users.noreply.github.com>
2026-10-13 03:10:21 +08:00
..
android fix(android): preserve executable static initializer evidence (#1876) 2026-10-11 23:40:42 +08:00
c feat(ghidra): admit RISC-V ELF analysis through a pinned generic lane (#2151) 2026-10-13 00:11:35 +08:00
contracts perf(mcp): keep Playwright and type-only imports off MCP startup (#1691) 2026-10-10 21:04:05 -07:00
ghidra feat(ghidra): admit RISC-V ELF analysis through a pinned generic lane (#2151) 2026-10-13 00:11:35 +08:00
ida feat(ida): support optional native IDA Free MCP in attached mode (#1544) 2026-10-13 03:10:21 +08:00
inspector refactor: give Inspector its own capability directory (#869) 2026-10-07 13:53:25 +08:00
interface-builder feat(native): add investigation features (#486) 2026-09-30 00:41:05 +08:00
napi test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
native refactor: consolidate boundary semantics and prune redundant tests 2026-10-10 05:56:01 +08:00
objc fix(hopper): preserve typed string values and verify real searches 2026-10-09 05:12:36 +08:00
providers refactor: remove forwarding exports and redundant aliases 2026-10-09 22:46:09 +08:00
psp feat(ghidra): admit bounded PSP ELF through installed Allegrex (#1599) 2026-10-11 19:47:33 +08:00
readiness feat(electron): add autonomous Electron runtime analysis (#464) 2026-08-05 19:07:46 +08:00
swift fix(ghidra): classify modern Swift manglings in swift type analysis (#1208) 2026-10-09 16:10:55 +08:00
versions test: add source-built Hopper conformance fixtures 2026-07-12 19:32:29 +08:00
README.md docs: correct drift and reorganize English guides (#2207) 2026-10-12 22:14:25 +08:00
readmeConsistency.test.ts docs: align the Indonesian README with the other translations (#1512) 2026-10-10 16:26:52 +08:00
releaseConfiguration.test.ts test: consolidate redundant assertions into boundary workflows 2026-10-09 20:26:46 +08:00

README.md

Source-built conformance fixtures

These sources are deliberately small semantic oracles for REA providers. Run npm run verify:fixtures on macOS or Linux to compile them into the ignored build/conformance/ directory, emit a hash-and-toolchain manifest, and verify their platform-native symbols and strings with local command-line tools. The portable C, version, and large-inventory fixtures build as Mach-O on macOS and ELF on Linux; Objective-C, Swift, and N-API-like fixtures remain macOS-only.

Only source files are versioned. Generated binaries, generated large-fixture source, debug information, and manifests must remain under build/.

ghidra/inventory.c is also compiled into temporary Linux ELF debug and stripped variants by npm run verify:ghidra. It fixes local functions, external puts linkage, defined strings, and writable/executable memory needed to prove the read-only Ghidra inventory contracts without committing a binary.

scripts/create-ghidra-windows-fixture.mjs separately emits a deterministic, ignored native x86-64 PE application for the controlled Windows Ghidra P0 lane. The generator and fixed SHA-256 are versioned; the .exe is never committed or executed. npm run verify:ghidra:windows uses it to verify the admitted read-only operation inventory, digest linkage, transport, and cleanup on the self-hosted real-Ghidra runner.

The C fixture fixes a known call chain and strings. The version pair fixes an added symbol, changed string, and changed call relationship. The generated large fixture contains 1,205 uniquely named functions and strings to verify that providers return complete inventories. Objective-C, Swift, and N-API-like fixtures provide metadata-oriented inputs without package or network dependencies.

readiness/ adds source-only generated JavaScript CLI and Electron fixtures for the repository's reconstruction-readiness verifier. npm run verify:readiness combines them with the compiled native fixtures, exercises CLI and MCP parity for real analysis operations, and checks the internal machine-readable report documented in docs/reconstruction-readiness.md.