angr.analyses.s_propagator¶
- class angr.analyses.s_propagator.SPropagatorModel¶
Bases:
objectThe SPropagator model that stores replacements for virtual variables.
- __init__()¶
- class angr.analyses.s_propagator.SPropagatorAnalysis¶
Bases:
AnalysisConstant 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)¶
- property replacements¶
- property dead_vvar_ids¶
- static is_global_variable_updated(func_graph, block_dict, varid, gv_addr, gv_size, defloc, useloc)¶
- Return type:
- Parameters:
varid (int)
gv_addr (int)
gv_size (int)
defloc (AILCodeLocation)
useloc (AILCodeLocation)
- 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:
- 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:
- Parameters:
replacements (dict[AILCodeLocation, dict[VirtualVariable | Tmp, Expression]])
loc (AILCodeLocation)
expr (VirtualVariable | Tmp)
value (Expression)