1.9 KiB
1.9 KiB
Binary-level call-graph extraction and symbol graph construction
Module
Signals
Status
IMPLEMENTED
Description
Call-graph ingestion, normalization, and parsing services exist for processing binary call targets into normalized graph structures.
Implementation Details
- Modules:
src/Signals/StellaOps.Signals/Services/,src/Signals/StellaOps.Signals/Parsing/,src/Signals/StellaOps.Signals/Models/ - Key Classes:
CallgraphIngestionService(src/Signals/StellaOps.Signals/Services/CallgraphIngestionService.cs) - ingests call-graph documents and builds symbol graphsCallgraphParserResolver(src/Signals/StellaOps.Signals/Parsing/ICallgraphParserResolver.cs) - resolves language-specific call-graph parsersCallgraphDocument(src/Signals/StellaOps.Signals/Models/CallgraphDocument.cs) - root document model for call-graph dataCallgraphNode(src/Signals/StellaOps.Signals/Models/CallgraphNode.cs) - represents a function/method node in the call graphCallgraphEdge(src/Signals/StellaOps.Signals/Models/CallgraphEdge.cs) - represents a call edge between nodesCallgraphEntrypoint(src/Signals/StellaOps.Signals/Models/CallgraphEntrypoint.cs) - entry point into the call graph (API endpoint, main method)
- Interfaces:
ICallgraphIngestionService,ICallgraphParserResolver - Source: Feature matrix scan
E2E Test Plan
- Ingest a call-graph document via
CallgraphIngestionServiceand verify nodes and edges are stored - Verify parser resolution: submit call graphs for different languages and confirm the correct parser is selected
- Verify symbol normalization: ingest a binary call graph and confirm symbols are normalized to canonical form
- Verify entry point detection: ingest a call graph with API endpoints and confirm they are identified as entrypoints
- Query the constructed symbol graph and verify call paths from entry to vulnerable function