angr.analyses.s_propagator

class angr.analyses.s_propagator.SPropagatorModel

Bases: object

The SPropagator model that stores replacements for virtual variables.

__init__()
class angr.analyses.s_propagator.SPropagatorAnalysis

Bases: Analysis

Constant and expression propagation that only supports SSA AIL graphs.

__init__(subject, *, ail_manager, func_graph=None, only_consts=True, stack_pointer_tracker=None, func_args=None, func_addr=None, stack_arg_offsets=None)
Parameters:
property replacements
property dead_vvar_ids
static is_global_variable_updated(func_graph, block_dict, varid, gv_addr, gv_size, defloc, useloc)
Return type:

bool

Parameters:
static is_vvar_used_for_addr_loading_switch_case(uselocs, blocks)

Check if a virtual variable is used for loading an address in a switch-case construct.

Parameters:
  • uselocs (set[AILCodeLocation]) – The use locations of the virtual variable.

  • blocks – All blocks of the current function.

Return type:

bool

Returns:

True if the virtual variable is used for loading an address in a switch-case construct, False otherwise.

static replace(replacements, loc, expr, value)
Return type:

None

Parameters: