angr.analyses.decompiler.structurer_nodes¶
- class angr.analyses.decompiler.structurer_nodes.MultiNode¶
Bases:
object- __init__(nodes, addr=None, idx=None)¶
- addr
- idx
- class angr.analyses.decompiler.structurer_nodes.BaseNode¶
Bases:
object- static test_empty_node(node)¶
- static test_empty_condition_node(cond_node)¶
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.SequenceNode¶
Bases:
BaseNode- nodes
- add_node(node)¶
- insert_node(pos, node)¶
- remove_node(node)¶
- node_position(node)¶
- copy()¶
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.CodeNode¶
Bases:
BaseNode- __init__(node, reaching_condition)¶
- node
- reaching_condition
- property addr¶
- property idx¶
- dbg_repr(indent=0)¶
- copy()¶
- class angr.analyses.decompiler.structurer_nodes.ConditionNode¶
Bases:
BaseNode- __init__(addr, reaching_condition, condition, true_node, false_node=None)¶
- reaching_condition
- condition
- true_node
- false_node
- dbg_repr(indent=0)¶
- node
- class angr.analyses.decompiler.structurer_nodes.CascadingConditionNode¶
Bases:
BaseNode- __init__(addr, condition_and_nodes, else_node=None)¶
- condition_and_nodes
- else_node
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.LoopNode¶
Bases:
BaseNode- __init__(sort, condition, sequence_node, addr=None, continue_addr=None, initializer=None, iterator=None)¶
- Parameters:
sort (str)
condition (Expression | None)
sequence_node (SequenceNode)
addr (int | None)
continue_addr (int | None)
initializer (Assignment | None)
iterator (Assignment | None)
- sort: str
- condition: Expression | None
- sequence_node: SequenceNode
- initializer: Assignment | None
- iterator: Assignment | None
- copy()¶
- property addr¶
- property continue_addr¶
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.BreakNode¶
Bases:
BaseNode- __init__(addr, target)¶
- target
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.ContinueNode¶
Bases:
BaseNode- __init__(addr, target)¶
- target
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.ConditionalBreakNode¶
Bases:
BreakNode- __init__(addr, condition, target)¶
- condition
- dbg_repr(indent=0)¶
- class angr.analyses.decompiler.structurer_nodes.SwitchCaseNode¶
Bases:
BaseNode- __init__(switch_expr, cases, default_node, addr=None)¶
- Parameters:
cases (OrderedDict[int | tuple[int, ...], SequenceNode])
- switch_expr
- cases: OrderedDict[int | tuple[int, ...], SequenceNode]
- default_node
- class angr.analyses.decompiler.structurer_nodes.IncompleteSwitchCaseNode¶
Bases:
BaseNodeDescribes an incomplete set of switch-case nodes. Usually an intermediate result. Should always be restructured into a SwitchCaseNode by the end of structuring. Only used in Phoenix structurer.
- head
- cases: list
- class angr.analyses.decompiler.structurer_nodes.IncompleteSwitchCaseHeadStatement¶
Bases:
StatementDescribes a switch-case head. This is only created by LoweredSwitchSimplifier.
- __init__(idx, switch_variable, case_addrs, **kwargs)¶
- switch_variable
- replace(old_expr, new_expr)¶
- likes(other)¶
- addr
- matches(other)¶