angr.analyses.decompiler.stackarg_offset_manager

class angr.analyses.decompiler.stackarg_offset_manager.StackArgOffsetManager

Bases: object

A manager that keeps track of stack argument offsets and sizes for all call sites in a function. This manager also keeps track of the stack virtual variables that can be eliminated for each call site because they are stack arguments.

all_stackarg_vvars and stackoff_to_vvars map stack arguments to virtual variable IDs. You must call update_stackoff_vvars() to populate these two attributes after Stage 1 SSA rewriting. is_stackarg_vvar() is only valid after update_stackoff_vvars() is called.

__init__(bits)
Parameters:

bits (int)

add_call_stack_arg_offset(block_addr, block_idx, ins_addr, stack_arg_offset, stack_arg_size)
Parameters:
  • block_addr (int)

  • block_idx (int | None)

  • ins_addr (int)

  • stack_arg_offset (int)

  • stack_arg_size (int)

merge(other)
Parameters:

other (StackArgOffsetManager)

get_stackarg_offsets()
Return type:

set[int]

get_stackarg_insaddrs()
Return type:

set[int]

update_stackoff_vvars(rd)
Return type:

None

Parameters:

rd (SRDAModel)

is_stackarg_vvar(vvar_id)
Return type:

bool

Parameters:

vvar_id (int)