miasm
Reverse engineering framework
miasm.ir.ir.AssignBlock Class Reference
Inheritance diagram for miasm.ir.ir.AssignBlock:
Collaboration diagram for miasm.ir.ir.AssignBlock:

Public Member Functions

def __init__ (self, irs=None, instr=None)
 
def instr (self)
 
def __setitem__ (self, dst, src)
 
def __getitem__ (self, key)
 
def __contains__ (self, key)
 
def iteritems (self)
 
def items (self)
 
def itervalues (self)
 
def keys (self)
 
def values (self)
 
def __iter__ (self)
 
def __delitem__ (self, _)
 
def update (self, _)
 
def __eq__ (self, other)
 
def __ne__ (self, other)
 
def __len__ (self)
 
def get (self, key, default)
 
def get_w (self)
 
def get_rw (self, mem_read=False, cst_read=False)
 
def get_r (self, mem_read=False, cst_read=False)
 
def __str__ (self)
 
def dst2ExprAssign (self, dst)
 
def simplify (self, simplifier)
 
def to_string (self, loc_db=None)
 

Static Public Member Functions

def get_modified_slice (dst, src)
 

Detailed Description

Represent parallel IR assignment, such as:
EAX = EBX
EBX = EAX

-> Exchange between EBX and EAX

AssignBlock can be seen as a dictionary where keys are the destinations
(ExprId or ExprMem), and values their corresponding sources.

Also provides common manipulation on this assignments.

Constructor & Destructor Documentation

◆ __init__()

def miasm.ir.ir.AssignBlock.__init__ (   self,
  irs = None,
  instr = None 
)
Create a new AssignBlock
@irs: (optional) sequence of ExprAssign, or dictionary dst (Expr) -> src
      (Expr)
@instr: (optional) associate an instruction with this AssignBlock
Here is the call graph for this function:

Member Function Documentation

◆ __contains__()

def miasm.ir.ir.AssignBlock.__contains__ (   self,
  key 
)

◆ __delitem__()

def miasm.ir.ir.AssignBlock.__delitem__ (   self,
  _ 
)

◆ __eq__()

def miasm.ir.ir.AssignBlock.__eq__ (   self,
  other 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ __getitem__()

def miasm.ir.ir.AssignBlock.__getitem__ (   self,
  key 
)

◆ __iter__()

def miasm.ir.ir.AssignBlock.__iter__ (   self)
Here is the caller graph for this function:

◆ __len__()

def miasm.ir.ir.AssignBlock.__len__ (   self)

◆ __ne__()

def miasm.ir.ir.AssignBlock.__ne__ (   self,
  other 
)

◆ __setitem__()

def miasm.ir.ir.AssignBlock.__setitem__ (   self,
  dst,
  src 
)

◆ __str__()

def miasm.ir.ir.AssignBlock.__str__ (   self)

◆ dst2ExprAssign()

def miasm.ir.ir.AssignBlock.dst2ExprAssign (   self,
  dst 
)
Return an ExprAssign corresponding to @dst equation
@dst: Expr instance

◆ get()

def miasm.ir.ir.AssignBlock.get (   self,
  key,
  default 
)
Here is the caller graph for this function:

◆ get_modified_slice()

def miasm.ir.ir.AssignBlock.get_modified_slice (   dst,
  src 
)
static
Return an Expr list of extra expressions needed during the
object instantiation
Here is the caller graph for this function:

◆ get_r()

def miasm.ir.ir.AssignBlock.get_r (   self,
  mem_read = False,
  cst_read = False 
)
Return a set of elements reads
@mem_read: (optional) mem_read argument of `get_r`
@cst_read: (optional) cst_read argument of `get_r`
Here is the call graph for this function:

◆ get_rw()

def miasm.ir.ir.AssignBlock.get_rw (   self,
  mem_read = False,
  cst_read = False 
)
Return a dictionary associating written expressions to a set of
their read requirements
@mem_read: (optional) mem_read argument of `get_r`
@cst_read: (optional) cst_read argument of `get_r`
Here is the caller graph for this function:

◆ get_w()

def miasm.ir.ir.AssignBlock.get_w (   self)
Return a set of elements written
Here is the call graph for this function:

◆ instr()

def miasm.ir.ir.AssignBlock.instr (   self)
Return the associated instruction, if any
Here is the call graph for this function:
Here is the caller graph for this function:

◆ items()

def miasm.ir.ir.AssignBlock.items (   self)

◆ iteritems()

def miasm.ir.ir.AssignBlock.iteritems (   self)
Here is the caller graph for this function:

◆ itervalues()

def miasm.ir.ir.AssignBlock.itervalues (   self)

◆ keys()

def miasm.ir.ir.AssignBlock.keys (   self)
Here is the caller graph for this function:

◆ simplify()

def miasm.ir.ir.AssignBlock.simplify (   self,
  simplifier 
)
Return a new AssignBlock with expression simplified

@simplifier: ExpressionSimplifier instance
Here is the call graph for this function:

◆ to_string()

def miasm.ir.ir.AssignBlock.to_string (   self,
  loc_db = None 
)
Here is the caller graph for this function:

◆ update()

def miasm.ir.ir.AssignBlock.update (   self,
  _ 
)

◆ values()

def miasm.ir.ir.AssignBlock.values (   self)

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