miasm
Reverse engineering framework
|
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) |
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.
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
def miasm.ir.ir.AssignBlock.__contains__ | ( | self, | |
key | |||
) |
def miasm.ir.ir.AssignBlock.__delitem__ | ( | self, | |
_ | |||
) |
def miasm.ir.ir.AssignBlock.__eq__ | ( | self, | |
other | |||
) |
def miasm.ir.ir.AssignBlock.__getitem__ | ( | self, | |
key | |||
) |
def miasm.ir.ir.AssignBlock.__iter__ | ( | self | ) |
def miasm.ir.ir.AssignBlock.__len__ | ( | self | ) |
def miasm.ir.ir.AssignBlock.__ne__ | ( | self, | |
other | |||
) |
def miasm.ir.ir.AssignBlock.__setitem__ | ( | self, | |
dst, | |||
src | |||
) |
def miasm.ir.ir.AssignBlock.__str__ | ( | self | ) |
def miasm.ir.ir.AssignBlock.dst2ExprAssign | ( | self, | |
dst | |||
) |
Return an ExprAssign corresponding to @dst equation @dst: Expr instance
def miasm.ir.ir.AssignBlock.get | ( | self, | |
key, | |||
default | |||
) |
|
static |
Return an Expr list of extra expressions needed during the object instantiation
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`
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`
def miasm.ir.ir.AssignBlock.get_w | ( | self | ) |
Return a set of elements written
def miasm.ir.ir.AssignBlock.instr | ( | self | ) |
Return the associated instruction, if any
def miasm.ir.ir.AssignBlock.items | ( | self | ) |
def miasm.ir.ir.AssignBlock.iteritems | ( | self | ) |
def miasm.ir.ir.AssignBlock.itervalues | ( | self | ) |
def miasm.ir.ir.AssignBlock.keys | ( | self | ) |
def miasm.ir.ir.AssignBlock.simplify | ( | self, | |
simplifier | |||
) |
Return a new AssignBlock with expression simplified @simplifier: ExpressionSimplifier instance
def miasm.ir.ir.AssignBlock.to_string | ( | self, | |
loc_db = None |
|||
) |
def miasm.ir.ir.AssignBlock.update | ( | self, | |
_ | |||
) |
def miasm.ir.ir.AssignBlock.values | ( | self | ) |