angr.analyses.cfg.indirect_jump_resolvers.const_resolver¶
- angr.analyses.cfg.indirect_jump_resolvers.const_resolver.exists_in_replacements(replacements, block_loc, tmp_var)¶
- class angr.analyses.cfg.indirect_jump_resolvers.const_resolver.ConstantResolver¶
Bases:
IndirectJumpResolverResolve an indirect jump by running a constant propagation on the entire function and check if the indirect jump can be resolved to a constant value. This resolver must be run after all other more specific resolvers.
- resolve(cfg, addr, func_addr, block, jumpkind, func_graph_complete=True, **kwargs)¶
This function does the actual resolve. Our process is easy: Propagate all values inside the function specified, then extract the tmp_var used for the indirect jump from the basic block. Use the tmp var to locate the constant value stored in the replacements. If not present, returns False tuple.
- Parameters:
- Returns:
Bool tuple with replacement address