angr.ailment.expression¶
- class angr.ailment.expression.Expression¶
Bases:
TaggedObject,ABCThe base class of all AIL expressions.
- bits: int
- depth
- property size¶
- has_atom(atom, identity=True)¶
- abstractmethod likes(other)¶
- abstractmethod matches(other)¶
- replace(old_expr, new_expr)¶
- Return type:
- Parameters:
old_expr (Expression)
new_expr (Expression)
- class angr.ailment.expression.Atom¶
Bases:
Expression- variable
- variable_offset
- class angr.ailment.expression.Const¶
Bases:
Atom- __init__(idx, variable, value, bits, **kwargs)¶
- value
- likes(other)¶
- matches(other)¶
- property sign_bit¶
- class angr.ailment.expression.Register¶
Bases:
Atom- __init__(idx, variable, reg_offset, bits, **kwargs)¶
- reg_offset
- likes(other)¶
- matches(other)¶
- class angr.ailment.expression.ComboRegister¶
Bases:
Atom- __init__(idx, variable, registers, **kwargs)¶
- Parameters:
registers (list[Register | VirtualVariable])
- property size¶
- likes(other)¶
- matches(other)¶
- copy()¶
- Return type:
- variable
- variable_offset
- class angr.ailment.expression.VirtualVariableCategory¶
Bases:
IntEnum- REGISTER = 0¶
- STACK = 1¶
- MEMORY = 2¶
- PARAMETER = 3¶
- TMP = 4¶
- COMBO_REGISTER = 5¶
- UNKNOWN = 6¶
- __new__(value)
- class angr.ailment.expression.VirtualVariable¶
Bases:
Atom- __init__(idx, varid, bits, category, oident=None, **kwargs)¶
- Parameters:
varid (int)
category (VirtualVariableCategory)
- varid
- category
- oident
- reg_vvars
- property parameter_category: VirtualVariableCategory | None¶
- likes(other)¶
- matches(other)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- class angr.ailment.expression.Phi¶
Bases:
Atom- __init__(idx, bits, src_and_vvars, **kwargs)¶
- src_and_vvars
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.Op¶
Bases:
Expression- op
- property verbose_op¶
- class angr.ailment.expression.UnaryOp¶
Bases:
Op- __init__(idx, op, operand, variable=None, variable_offset=None, bits=None, **kwargs)¶
- Parameters:
idx (int)
op (str)
operand (Expression)
variable_offset (int | None)
- operand
- variable
- variable_offset
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- property operands¶
- has_atom(atom, identity=True)¶
- class angr.ailment.expression.Convert¶
Bases:
UnaryOp- TYPE_INT = 0¶
- TYPE_FP = 1¶
- __init__(idx, from_bits, to_bits, is_signed, operand, from_type=ConvertType.TYPE_INT, to_type=ConvertType.TYPE_INT, rounding_mode=None, **kwargs)¶
- Parameters:
idx (int)
from_bits (int)
to_bits (int)
is_signed (bool)
operand (Expression)
from_type (ConvertType)
to_type (ConvertType)
- from_bits
- to_bits
- is_signed
- from_type
- to_type
- rounding_mode
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.Reinterpret¶
Bases:
UnaryOp- __init__(idx, from_bits, from_type, to_bits, to_type, operand, **kwargs)¶
- from_bits
- from_type
- to_bits
- to_type
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- class angr.ailment.expression.BinaryOp¶
Bases:
Op- OPSTR_MAP = {'Add': '+', 'AddF': '+', 'AddV': '+', 'And': '&', 'Carry': 'CARRY', 'CmpEQ': '==', 'CmpF': 'CmpF', 'CmpGE': '>=', 'CmpGE (signed)': '>=s', 'CmpGT': '>', 'CmpGT (signed)': '>s', 'CmpLE': '<=', 'CmpLE (signed)': '<=s', 'CmpLT': '<', 'CmpLT (signed)': '<s', 'CmpNE': '!=', 'Concat': 'CONCAT', 'Div': '/', 'DivF': '/', 'LogicalAnd': '&&', 'LogicalOr': '||', 'Mod': '%', 'Mul': '*', 'MulF': '*', 'MulV': '*', 'Or': '|', 'Rol': 'ROL', 'Ror': 'ROR', 'SBorrow': 'SBORROW', 'SCarry': 'SCARRY', 'Sar': '>>a', 'Shl': '<<', 'Shr': '>>', 'Sub': '-', 'SubF': '-', 'Xor': '^'}¶
- COMPARISON_NEGATION = {'CmpEQ': 'CmpNE', 'CmpGE': 'CmpLT', 'CmpGT': 'CmpLE', 'CmpLE': 'CmpGT', 'CmpLT': 'CmpGE', 'CmpNE': 'CmpEQ'}¶
- __init__(idx, op, operands, signed=False, *, variable=None, variable_offset=None, bits=None, floating_point=False, rounding_mode=None, vector_count=None, vector_size=None, **kwargs)¶
- operands
- signed
- variable
- variable_offset
- floating_point
- vector_count
- vector_size
- likes(other)¶
- matches(other)¶
- has_atom(atom, identity=True)¶
- replace(old_expr, new_expr)¶
- Return type:
- Parameters:
old_expr (Expression)
new_expr (Expression)
- property verbose_op¶
- class angr.ailment.expression.Load¶
Bases:
Expression- __init__(idx, addr, size, endness, variable=None, variable_offset=None, guard=None, alt=None, **kwargs)¶
- Parameters:
idx (int)
addr (Expression)
size (int)
endness (str)
- addr
- endness
- guard
- alt
- variable
- variable_offset
- has_atom(atom, identity=True)¶
- replace(old_expr, new_expr)¶
- likes(other)¶
- matches(other)¶
- class angr.ailment.expression.ITE¶
Bases:
Expression- __init__(idx, cond, iffalse, iftrue, variable=None, variable_offset=None, **kwargs)¶
- Parameters:
idx (int)
cond (Expression)
iffalse (Expression)
iftrue (Expression)
- cond
- iffalse
- iftrue
- variable
- variable_offset
- likes(other)¶
- matches(other)¶
- has_atom(atom, identity=True)¶
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.DirtyExpression¶
Bases:
Expression- __init__(idx, callee, operands, *, guard=None, mfx=None, maddr=None, msize=None, bits, **kwargs)¶
- Parameters:
callee (str)
operands (list[Expression])
guard (Expression | None)
mfx (str | None)
maddr (Expression | None)
msize (int | None)
bits (int)
- callee
- guard
- operands
- mfx
- maddr
- msize
- likes(other)¶
- matches(other)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- replace(old_expr, new_expr)¶
- Parameters:
old_expr (Expression)
new_expr (Expression)
- class angr.ailment.expression.VEXCCallExpression¶
Bases:
Expression- __init__(idx, callee, operands, bits, **kwargs)¶
- Parameters:
idx (int)
callee (str)
operands (tuple[Expression, ...])
bits (int)
- callee
- operands
- likes(other)¶
- matches(other)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.MultiStatementExpression¶
Bases:
ExpressionFor representing comma-separated statements and expression in C.
- __init__(idx, stmts, expr, **kwargs)¶
- Parameters:
idx (int)
expr (Expression)
- stmts
- expr
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- class angr.ailment.expression.BasePointerOffset¶
Bases:
Expression- __init__(idx, bits, base, offset, variable=None, variable_offset=None, **kwargs)¶
- Parameters:
idx (int)
bits (int)
base (Expression | str)
offset (int)
- base
- offset
- variable
- variable_offset
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- class angr.ailment.expression.StackBaseOffset¶
Bases:
BasePointerOffset- copy()¶
- Return type:
- deep_copy(manager)¶
- Return type:
- angr.ailment.expression.negate(expr, manager)¶
- Return type:
- Parameters:
expr (Expression)
manager (Manager)
- class angr.ailment.expression.Extract¶
Bases:
Expression- __init__(idx, bits, base, offset, endness, **kwargs)¶
- Parameters:
idx (int)
bits (int)
base (Expression)
offset (Expression)
endness (str)
- base
- offset
- endness
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.Insert¶
Bases:
Expression- __init__(idx, base, offset, value, endness, **kwargs)¶
- Parameters:
idx (int)
base (Expression)
offset (Expression)
value (Expression)
endness (str)
- base
- offset
- value
- endness
- likes(other)¶
- matches(other)¶
- replace(old_expr, new_expr)¶
- class angr.ailment.expression.Call¶
Bases:
ExpressionCall expression. Represents a function call that produces a value.
When used as a standalone statement (not part of an assignment), wrap it in a SideEffectStatement.
- __init__(idx, target, calling_convention=None, prototype=None, args=None, bits=None, **kwargs)¶
- Parameters:
idx (int)
target (Expression | str)
calling_convention (SimCC | None)
prototype (SimTypeFunction | None)
args (Sequence[Expression] | None)
bits (int | None)
- target
- calling_convention
- prototype
- args
- likes(other)¶
- matches(other)¶
- has_atom(atom, identity=True)¶
- replace(old_expr, new_expr)¶
- Parameters:
old_expr (Expression)
new_expr (Expression)
- copy()¶
- deep_copy(manager)¶
- class angr.ailment.expression.StringLiteral¶
Bases:
Expression- __init__(idx, data, bits, **kwargs)¶
- data
- property size¶
- likes(other)¶
- copy()¶
- deep_copy(manager)¶
- replace(old_expr, new_expr)¶
- Return type:
- Parameters:
old_expr (Expression)
new_expr (Expression)
- matches(other)¶
- class angr.ailment.expression.Struct¶
Bases:
Expression- __init__(idx, name, fields, field_offsets, bits, **kwargs)¶
- name
- fields
- field_offsets
- field_names
- get_field(name)¶
- property size¶
- likes(other)¶
- copy()¶
- deep_copy(manager)¶
- replace(old_expr, new_expr)¶
- matches(other)¶
- class angr.ailment.expression.RustEnum¶
Bases:
Expression- __init__(idx, name, fields, bits, **kwargs)¶
- bits: int
- property size¶
- likes(other)¶
- copy()¶
- deep_copy(manager)¶
- replace(old_expr, new_expr)¶
- matches(other)¶
- depth
- class angr.ailment.expression.Array¶
Bases:
Expression- __init__(idx, elements, bits, **kwargs)¶
- bits: int
- property size¶
- property length¶
- likes(other)¶
- copy()¶
- deep_copy(manager)¶
- replace(old_expr, new_expr)¶
- matches(other)¶
- depth
- class angr.ailment.expression.Let¶
Bases:
Op- __init__(idx, variant, defs, src, **kwargs)¶
- variant
- defs
- src
- likes(other)¶
- matches(other)¶
- copy()¶
- deep_copy(manager)¶
- class angr.ailment.expression.Macro¶
-
- name
- delimiter
- returnty