miasm
Reverse engineering framework
miasm.expression.expression.ExprOp Class Reference
Inheritance diagram for miasm.expression.expression.ExprOp:
Collaboration diagram for miasm.expression.expression.ExprOp:

Public Member Functions

def __init__ (self, op, *args)
 
def __reduce__ (self)
 
def __new__ (cls, op, *args)
 
def __str__ (self)
 
def get_w (self)
 
def is_function_call (self)
 
def is_infix (self)
 
def is_associative (self)
 
def is_commutative (self)
 
def copy (self)
 
def depth (self)
 
def graph_recursive (self, graph)
 
def is_op (self, op=None)
 
def is_op_segm (self)
 
- Public Member Functions inherited from miasm.expression.expression.Expr
def set_size (self, _)
 
def __init__ (self, size)
 
def get_is_canon (self)
 
def set_is_canon (self, value)
 
def __getitem__ (self, i)
 
def get_size (self)
 
def __repr__ (self)
 
def __hash__ (self)
 
def __eq__ (self, other)
 
def __ne__ (self, other)
 
def __lt__ (self, other)
 
def __add__ (self, other)
 
def __sub__ (self, other)
 
def __div__ (self, other)
 
def __floordiv__ (self, other)
 
def __mod__ (self, other)
 
def __mul__ (self, other)
 
def __lshift__ (self, other)
 
def __rshift__ (self, other)
 
def __xor__ (self, other)
 
def __or__ (self, other)
 
def __and__ (self, other)
 
def __neg__ (self)
 
def __pow__ (self, other)
 
def __invert__ (self)
 
def __deepcopy__ (self, _)
 
def replace_expr (self, dct)
 
def canonize (self)
 
def msb (self)
 
def zeroExtend (self, size)
 
def signExtend (self, size)
 
def graph (self)
 
def set_mask (self, value)
 
def is_int (self, value=None)
 
def is_id (self, name=None)
 
def is_loc (self, label=None)
 
def is_aff (self)
 
def is_assign (self)
 
def is_cond (self)
 
def is_mem (self)
 
def is_slice (self, start=None, stop=None)
 
def is_compose (self)
 
def is_mem_segm (self)
 
def __contains__ (self, expr)
 
def visit (self, callback)
 
def get_r (self, mem_read=False, cst_read=False)
 
def get_w (self, mem_read=False, cst_read=False)
 

Properties

 op = property(lambda self: self._op)
 
 args = property(lambda self: self._args)
 
- Properties inherited from miasm.expression.expression.Expr
 size = property(lambda self: self._size)
 
 is_canon = property(get_is_canon, set_is_canon)
 
 mask = property(lambda self: ExprInt(-1, self.size))
 

Additional Inherited Members

- Static Public Member Functions inherited from miasm.expression.expression.Expr
def get_object (expr_cls, args)
 
- Static Public Attributes inherited from miasm.expression.expression.Expr
dictionary args2expr = {}
 
 canon_exprs = set()
 
bool use_singleton = True
 

Detailed Description

An ExprOp stand for an operation between Expr

Use cases:
 - var1 XOR var2
 - var1 + var2 + var3
 - parity bit(var1)

Constructor & Destructor Documentation

◆ __init__()

def miasm.expression.expression.ExprOp.__init__ (   self,
  op,
args 
)
Create an ExprOp
@op: str, operation
@*args: Expr, operand list

Member Function Documentation

◆ __new__()

def miasm.expression.expression.ExprOp.__new__ (   cls,
  op,
args 
)
Here is the caller graph for this function:

◆ __reduce__()

def miasm.expression.expression.ExprOp.__reduce__ (   self)

◆ __str__()

def miasm.expression.expression.ExprOp.__str__ (   self)

Reimplemented from miasm.expression.expression.Expr.

Here is the call graph for this function:

◆ copy()

def miasm.expression.expression.ExprOp.copy (   self)

Reimplemented from miasm.expression.expression.Expr.

◆ depth()

def miasm.expression.expression.ExprOp.depth (   self)

◆ get_w()

def miasm.expression.expression.ExprOp.get_w (   self)

◆ graph_recursive()

def miasm.expression.expression.ExprOp.graph_recursive (   self,
  graph 
)
Recursive method used by graph
@graph: miasm.core.graph.DiGraph instance
Update @graph instance to include sons
This is an Abstract method

Reimplemented from miasm.expression.expression.Expr.

◆ is_associative()

def miasm.expression.expression.ExprOp.is_associative (   self)
Here is the caller graph for this function:

◆ is_commutative()

def miasm.expression.expression.ExprOp.is_commutative (   self)

◆ is_function_call()

def miasm.expression.expression.ExprOp.is_function_call (   self)
Returns true if the considered Expr is a function call

Reimplemented from miasm.expression.expression.Expr.

◆ is_infix()

def miasm.expression.expression.ExprOp.is_infix (   self)
Here is the caller graph for this function:

◆ is_op()

def miasm.expression.expression.ExprOp.is_op (   self,
  op = None 
)

Reimplemented from miasm.expression.expression.Expr.

◆ is_op_segm()

def miasm.expression.expression.ExprOp.is_op_segm (   self)
Returns True if is ExprOp and op == 'segm'

Reimplemented from miasm.expression.expression.Expr.

Property Documentation

◆ args

miasm.expression.expression.ExprOp.args = property(lambda self: self._args)
static

◆ op

miasm.expression.expression.ExprOp.op = property(lambda self: self._op)
static

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