Expand description
Graph representation stages for DFIR graphs.
Modules§
- graph_
algorithms - General graph algorithm utility functions
- ops
- DFIR’s operators
Structs§
- Dfir
Graph - An abstract “meta graph” representation of a DFIR graph.
- DiMul
Graph - A directed multigraph where an vertex’s inbound and outbound edges are indexed.
- Flat
Graph Builder - Wraper around
DfirGraph
to build a flat graph from AST code. - Graph
Edge Id - ID to identify an edge.
- Graph
Loop Id - ID to identify a loop block in
DfirGraph
. - Graph
Node Id - ID to identify a node (operator or handoff) in
DfirGraph
. - Graph
Subgraph Id - ID to identify a subgraph in
DfirGraph
. - OpInst
Generics - Operator generic arguments, split into specific categories.
- Operator
Instance - Meta-data relating to operators which may be useful throughout the compilation process.
- Write
Config - Configuration for writing graphs.
Enums§
- Color
- Push, Pull, Comp, or Hoff polarity.
- Graph
Node - A node, corresponding to an operator or a handoff.
- Port
Index Value - Helper struct for
PortIndex
which keeps span information for elided ports. - Write
Graph Type - Enum for choosing between mermaid and dot graph writing.
Functions§
- build_
hfcode - The main function of this module. Compiles a
DfirCode
AST into aDfirGraph
and source code, orDiagnostic
errors. - eliminate_
extra_ unions_ tees - Removes missing unions and tees. Must be applied BEFORE subgraph partitioning, i.e. on a flat graph.
- get_
operator_ generics - Gets the generic arguments for the operator.
- partition_
graph - Main method for this module. Partions a flat
DfirGraph
into one with subgraphs.