2.8 KiB
2.8 KiB
Binary Call-Graph Extraction and Reachability Analysis
Module
BinaryIndex
Status
PARTIALLY_IMPLEMENTED
Description
Binary call-graph extraction with BinaryCallGraphExtractor, reachability lifting via BinaryReachabilityLifter, dedicated BinaryIndex analysis module, and CLI binary commands.
Implementation Details
- Modules:
src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Analysis/,src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Semantic/,src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.DeltaSig/ - Key Classes:
ReachGraphBinaryReachabilityService(src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Analysis/ReachGraphBinaryReachabilityService.cs) - binary-level reachability integration with ReachGraphTaintGateExtractor(src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Analysis/TaintGateExtractor.cs) - extracts taint gates (bounds checks, null checks, auth checks, permission checks, type checks) from binary call pathsCfgExtractor(src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.DeltaSig/CfgExtractor.cs) - control flow graph extraction from disassembled binariesCallNgramGenerator(src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Semantic/CallNgramGenerator.cs) - generates call-sequence n-grams from lifted IR for call graph analysisCallGraphMatcherAdapter(src/BinaryIndex/__Libraries/StellaOps.BinaryIndex.Validation/Matchers/MatcherAdapters.cs) - adapter for call graph matching in validation harness
- Interfaces:
ICallNgramGenerator,IBinaryFeatureExtractor
E2E Test Plan
- Submit an ELF binary and verify call-graph extraction produces a valid set of function nodes and edges
- Verify
TaintGateExtractorclassifies conditions correctly (bounds check, null check, auth check, permission check, type check) - Verify
CfgExtractorproduces control flow graphs from disassembled functions - Verify
CallNgramGeneratorgenerates n-grams (n=2,3,4) from lifted function IR and computes Jaccard similarity - Verify
ReachGraphBinaryReachabilityServiceintegrates with the ReachGraph module for function-level exploitability assessment - Verify call-graph-based reachability results feed into the ensemble decision engine
Verification Outcome (run-001)
- Tier 0/1/2 artifacts: docs/qa/feature-checks/runs/binaryindex/binary-call-graph-extraction-and-reachability-analysis/run-001/
- Result: not implemented at claim parity.
- Missing behavior:
- TaintGateExtractor.ExtractAsync returns empty output and does not perform binary/disassembly path extraction.
- CallGraphMatcherAdapter is placeholder logic with fixed score and TODO comments.
- ReachGraphBinaryReachabilityService.FindPathsAsync currently constructs simplified placeholder paths.
- No focused behavioral tests prove call-graph matcher/reachability adapter semantics end-to-end.