angr.analyses.calling_convention.fact_collector

type angr.analyses.calling_convention.fact_collector.FactData = tuple[int, int, int] | None
class angr.analyses.calling_convention.fact_collector.FactCollectorState

Bases: object

The abstract state for FactCollector.

__init__()
tmps: dict[int, FactData]
simple_stack: dict[int, FactData]
simple_regs: dict[int, FactData]
ins_addr
callee_stored_regs: dict[int, int]
reg_reads
reg_reads_count
reg_writes: set[int]
stack_reads
stack_writes: set[int]
pointer_arg_derefs: defaultdict[FactData, int]
sp_value
bp_value
register_read(offset, size_in_bytes)
Parameters:
  • offset (int)

  • size_in_bytes (int)

register_read_undo(offset)
Return type:

None

Parameters:

offset (int)

register_written(offset, size_in_bytes)
Parameters:
  • offset (int)

  • size_in_bytes (int)

stack_read(offset, size_in_bytes)
Parameters:
  • offset (int)

  • size_in_bytes (int)

stack_written(offset, size_int_bytes)
Parameters:
  • offset (int)

  • size_int_bytes (int)

copy(with_tmps=True)
Return type:

FactCollectorState

Parameters:

with_tmps (bool)

class angr.analyses.calling_convention.fact_collector.SimEngineFactCollectorVEX

Bases: SimEngineNostmtVEX[FactCollectorState, FactData, None], SimEngineLight[FactCollectorState, FactData, Block, None]

The engine for FactCollector.

__init__(project, bp_as_gpr, track_arg_uses, seen_reg_uses)
Parameters:
class angr.analyses.calling_convention.fact_collector.FactCollector

Bases: Analysis

An extremely fast analysis that extracts necessary facts of a function for CallingConventionAnalysis to make decision on the calling convention and prototype of a function.

__init__(func, max_depth=100, track_arg_uses=False, track_arg_passthru=False)
Parameters:
callsites: dict[int, tuple[Function, list[FactData]]]
input_args: list[SimRegArg | SimStackArg] | None
unused_args: list[SimRegArg]
retval_size: int | None
pointer_arg_derefs: defaultdict[FactData, int]
extra_pop: int | None