angr.blade¶
- exception angr.blade.BadJumpkindNotification¶
Bases:
ExceptionNotifies the caller that the jumpkind is bad (e.g., Ijk_NoDecode)
- class angr.blade.Blade¶
Bases:
objectBlade is a light-weight program slicer that works with networkx DiGraph containing CFGNodes. It is meant to be used in angr for small or on-the-fly analyses.
- __init__(graph, dst_run, dst_stmt_idx, direction='backward', project=None, cfg=None, ignore_sp=False, ignore_bp=False, ignored_regs=None, max_level=3, base_state=None, stop_at_calls=False, cross_insn_opt=False, max_predecessors=10, include_imarks=True, control_dependence=True)¶
- Parameters:
graph (
DiGraph) – A graph representing the control flow graph. Note that it does not take angr.analyses.CFGEmulated or angr.analyses.CFGFast.dst_run (
int) – An address specifying the target SimRun.dst_stmt_idx (
int) – The target statement index. -1 means executing until the last statement.direction (
str) – ‘backward’ or ‘forward’ slicing. Forward slicing is not yet supported.project (angr.Project) – The project instance.
cfg (angr.analyses.CFGBase) – the CFG instance. It will be made mandatory later.
ignore_sp (
bool) – Whether the stack pointer should be ignored in dependency tracking. Any dependency from/to stack pointers will be ignored if this options is True.ignore_bp (
bool) – Whether the base pointer should be ignored or not.max_level (
int) – The maximum number of blocks that we trace back for.stop_at_calls (
bool) – Limit slicing within a single function. Do not proceed when encounters a call edge.include_imarks (
bool) – Should IMarks (instruction boundaries) be included in the slice.control_dependence (
bool) – Whether to consider control dependencies. If True, the temps controlling conditional exits will be added to the tainting set.max_predecessors (int)
- Returns:
None
- property slice¶
- dbg_repr(arch=None)¶