angr.analyses.decompiler.ssailification.traversal_engine

angr.analyses.decompiler.ssailification.traversal_engine.offset_sort_key(v)
Return type:

tuple[int, int, int, int]

Parameters:

v (tuple[int | None, int])

class angr.analyses.decompiler.ssailification.traversal_engine.DefInfo

Bases: object

Information about a def, or an expression that defines a new SSA variable.

def_: Def
kind: Kind
loc: AILCodeLocation
variable_offset: int
variable_size: int
store_offset: int
store_size: int
supercedes: set[Def]
property variable_range
property variable_endoffset
__init__(def_, kind, loc, variable_offset, variable_size, store_offset, store_size, supercedes)
Parameters:
Return type:

None

class angr.analyses.decompiler.ssailification.traversal_engine.SimEngineSSATraversal

Bases: SimEngineLightAIL[TraversalState, Value, None, None]

This engine collects all register and stack variable locations and links them to the block of their creation.

__init__(project, simos, sp_tracker=None, bp_as_gpr=False, stackvars=False, use_tmps=False, functions=None)
Parameters:
def_info: dict[Def, DefInfo]
pending_ptr_defines_nonlocal: dict[int, tuple[AILCodeLocation, StackBaseOffset, set[tuple[int, int]], bool]]
hclb_side_exit_state: TraversalState | None
finalize()
perform_def(kind, def_, variable_offset, variable_size, store_offset, store_size, loc=None, supercedes=None)
Parameters:
stackvar_get(base_offset, extra_offset, base_size)
Return type:

set[tuple[int | None, int]]

Parameters:
  • base_offset (int)

  • extra_offset (int)

  • base_size (int)

stackvar_set(base_offset, extra_offset, base_size, value)
Parameters:
register_get(offset, size, def_)
Return type:

set[tuple[int | None, int]]

Parameters:
register_set(offset, size, value, def_)
Parameters: