angr.analyses.stack_pointer_tracker

class angr.analyses.stack_pointer_tracker.BottomType

Bases: object

The bottom value for register values.

class angr.analyses.stack_pointer_tracker.Constant

Bases: object

Represents a constant value.

__init__(val)
val
class angr.analyses.stack_pointer_tracker.Register

Bases: object

Represent a register.

__init__(offset, bitlen)
offset
bitlen
class angr.analyses.stack_pointer_tracker.OffsetVal

Bases: object

Represent a value with an offset added.

__init__(reg, offset)
property reg
property offset
class angr.analyses.stack_pointer_tracker.Eq

Bases: object

Represent an equivalence condition.

__init__(val0, val1)
val0
val1
class angr.analyses.stack_pointer_tracker.FrozenStackPointerTrackerState

Bases: object

Abstract state for StackPointerTracker analysis with registers and memory values being in frozensets.

__init__(regs, memory, is_tracking_memory, resilient)
regs
memory
is_tracking_memory
resilient
unfreeze()
merge(other, addr, reg_merge_cache, mem_merge_cache)
Parameters:
class angr.analyses.stack_pointer_tracker.StackPointerTrackerState

Bases: object

Abstract state for StackPointerTracker analysis.

__init__(regs, memory, is_tracking_memory, resilient)
Parameters:

resilient (bool)

regs
memory
is_tracking_memory
resilient
give_up_on_memory_tracking()
store(addr, val)
pop_dirty()
load(addr)
get(reg)
put(reg, val, force=False)
Parameters:

force (bool)

copy()
freeze()
merge(other, addr, reg_merge_cache, mem_merge_cache)
Parameters:
exception angr.analyses.stack_pointer_tracker.CouldNotResolveException

Bases: Exception

An exception used in StackPointerTracker analysis to represent internal resolving failures.

class angr.analyses.stack_pointer_tracker.StackPointerTracker

Bases: Analysis, ForwardAnalysis

Track the offset of stack pointer at the end of each basic block of a function.

reg_values: dict[int, dict[int, Any]]
mem_values: dict[int, dict[int, Any]]
reg_deltas: dict[int, dict[int, dict[int, Any]]]
mem_deltas: dict[int, dict[int, dict[int, Any]]]
offset_after(addr, reg)
offset_before(addr, reg)
offset_after_block(block_addr, reg)
offset_before_block(block_addr, reg)
constant_after(addr, reg)
constant_before(addr, reg)
constant_after_block(block_addr, reg)
constant_before_block(block_addr, reg)
property inconsistent
inconsistent_for(reg)
offsets_for(reg)