miasm
Reverse engineering framework
miasm.analysis.data_flow.State Class Reference
Inheritance diagram for miasm.analysis.data_flow.State:
Collaboration diagram for miasm.analysis.data_flow.State:

Public Member Functions

def __init__ (self)
 
def copy (self)
 
def __eq__ (self, other)
 
def __ne__ (self, other)
 
def may_interfer (self, dsts, src)
 
def get_representative_expr (self, expr)
 
def propagation_allowed (self, expr)
 
def eval_assignblock (self, assignblock)
 
def merge (self, other)
 

Public Attributes

 equivalence_classes
 
 undefined
 

Detailed Description

Object representing the state of a program at a given point
The state is represented using equivalence classes

Each assignment can create/destroy equivalence classes. Interferences
between expression is computed using `may_interfer` function

Constructor & Destructor Documentation

◆ __init__()

def miasm.analysis.data_flow.State.__init__ (   self)

Member Function Documentation

◆ __eq__()

def miasm.analysis.data_flow.State.__eq__ (   self,
  other 
)
Here is the caller graph for this function:

◆ __ne__()

def miasm.analysis.data_flow.State.__ne__ (   self,
  other 
)

◆ copy()

def miasm.analysis.data_flow.State.copy (   self)
Here is the caller graph for this function:

◆ eval_assignblock()

def miasm.analysis.data_flow.State.eval_assignblock (   self,
  assignblock 
)
Evaluate the @assignblock on the current state
@assignblock: AssignBlock instance
Here is the call graph for this function:

◆ get_representative_expr()

def miasm.analysis.data_flow.State.get_representative_expr (   self,
  expr 
)
Replace each sub expression of @expr by its representative element
@expr: Expression to analyse
Here is the call graph for this function:
Here is the caller graph for this function:

◆ may_interfer()

def miasm.analysis.data_flow.State.may_interfer (   self,
  dsts,
  src 
)
Return True is @src may interfer with expressions in @dsts
@dsts: Set of Expressions
@src: expression to test
Here is the call graph for this function:
Here is the caller graph for this function:

◆ merge()

def miasm.analysis.data_flow.State.merge (   self,
  other 
)
Merge the current state with @other
@other: State instance
Here is the caller graph for this function:

◆ propagation_allowed()

def miasm.analysis.data_flow.State.propagation_allowed (   self,
  expr 
)
Return True if @expr can be propagated
Don't propagate:
- Phi nodes
- call_func_ret / call_func_stack operants
Here is the caller graph for this function:

Member Data Documentation

◆ equivalence_classes

miasm.analysis.data_flow.State.equivalence_classes

◆ undefined

miasm.analysis.data_flow.State.undefined

The documentation for this class was generated from the following file: