angr.analyses.cfg.indirect_jump_resolvers.resolver¶
- class angr.analyses.cfg.indirect_jump_resolvers.resolver.IndirectJumpResolver¶
Bases:
object- __init__(project, timeless=False, base_state=None)¶
- filter(cfg, addr, func_addr, block, jumpkind)¶
Check if this resolution method may be able to resolve the indirect jump or not.
- Parameters:
- Returns:
True if it is possible for this resolution method to resolve the specific indirect jump, False otherwise.
- Return type:
- resolve(cfg, addr, func_addr, block, jumpkind, func_graph_complete=True, **kwargs)¶
Resolve an indirect jump.
- Parameters:
cfg – The CFG analysis object.
addr (int) – Basic block address of this indirect jump.
func_addr (int) – Address of the function that this indirect jump belongs to.
block – The basic block. The type is determined by the backend being used. It’s pyvex.IRSB if pyvex is used as the backend.
jumpkind (str) – The jumpkind.
func_graph_complete (
bool) – True if the function graph is complete at this point (except for nodes that this indirect jump node dominates).
- Returns:
A tuple of a boolean indicating whether the resolution is successful or not, and a list of resolved targets (ints).
- Return type: