angr.state_plugins.icicle

class angr.state_plugins.icicle.IcicleStateTranslationData

Bases: object

Represents the saved information needed to convert an Icicle state back to an angr state.

base_state: SimState[int, int]
registers: set[str]
mapped_pages: set[int]
writable_pages: set[int]
explicit_page_metadata: dict[int, int | None]
initial_cpu_icount: int
icicle_arch: str
__init__(base_state, registers, mapped_pages, writable_pages, explicit_page_metadata, initial_cpu_icount, icicle_arch)
Parameters:
Return type:

None

class angr.state_plugins.icicle.IcicleVMRef

Bases: object

Holder shared by reference across plugin copies.

Lets multiple SimStateIcicle plugins point at the same VM and observe each other’s advancements via generation: each successful engine run bumps generation, invalidating any plugin still holding the prior value.

vm: Icicle
generation: int = 0
__init__(vm, generation=0)
Parameters:
  • vm (Icicle)

  • generation (int)

Return type:

None

class angr.state_plugins.icicle.SimStateIcicle

Bases: SimStatePlugin

Engine-internal plugin for IcicleEngine continuation detection.

Attached to states produced by IcicleEngine.process(). Owns the VM and the metadata the engine needs to decide whether the next call is a lightweight continuation or requires a full snapshot restore.

__init__(vm_ref=None, generation=None, base_translation_data=None, translation_data=None, dirty_pages=None)
Parameters:
property is_live: bool

True when the VM is still positioned where this state last left it.