3.2 KiB
3.2 KiB
Unified Binary + Source Reachability (Polyglot Call Graph)
Module
Scanner
Status
VERIFIED
Description
Multi-language call graph extraction is implemented for binary, Java, Python, Node, Ruby, PHP, and JavaScript ecosystems with native callgraph building.
Implementation Details
- Binary Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Binary/BinaryCallGraphExtractor.cs-BinaryCallGraphExtractorbuilding call graphs from native binaries (ELF, PE, Mach-O) using disassembly and PLT/IAT resolution
- Java Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Java/JavaCallGraphExtractor.cs-JavaCallGraphExtractorbuilding call graphs from Java bytecode with virtual dispatch resolution
- Python Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Python/PythonCallGraphExtractor.cs-PythonCallGraphExtractorbuilding call graphs from Python AST analysis
- Node Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Node/NodeCallGraphExtractor.cs-NodeCallGraphExtractorbuilding call graphs from Node.js module resolution
- JavaScript Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/JavaScript/JavaScriptCallGraphExtractor.cs-JavaScriptCallGraphExtractorbuilding call graphs from JavaScript/TypeScript
- Ruby Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Ruby/RubyCallGraphExtractor.cs-RubyCallGraphExtractorbuilding call graphs from Ruby source analysis
- PHP Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Php/PhpCallGraphExtractor.cs-PhpCallGraphExtractorbuilding call graphs from PHP source analysis
- Go Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Go/GoCallGraphExtractor.cs-GoCallGraphExtractorbuilding call graphs from Go source
- .NET Call Graph:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/DotNet/DotNetCallGraphExtractor.cs-DotNetCallGraphExtractorbuilding call graphs from .NET assemblies
- DI Registration:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/DependencyInjection/CallGraphServiceCollectionExtensions.cs- Registering all call graph extractors
E2E Test Plan
- Extract a call graph from a Java application and verify it includes both source-level and bytecode-level edges
- Extract a binary call graph from an ELF binary and verify PLT resolution connects to imported library functions
- Verify polyglot call graph construction: Python calling a C extension library, with edges crossing the language boundary
- Verify Node.js call graph extraction handles CommonJS
require()and ESMimportpatterns - Verify Ruby call graph extraction handles Rails controller dispatch and method_missing patterns
- Verify the unified call graph merges binary and source call graphs into a single reachability graph
Verification
| Check | Result |
|---|---|
| Tier 0 - Source files exist | PASS |
| Tier 1 - Build + code review | PASS |
| Tier 2 - Integration tests | PASS |
| Verified | 2026-02-13T18:10:00Z |