angr.go.analyses.block_scan¶
Raw-AIL block scanning shared by the project-level Go analyses: lift blocks straight from VEX (no SSA, no simplification) and track which constants and call results the machine registers hold.
- class angr.go.analyses.block_scan.RegisterEnv¶
Bases:
objectWhat the machine registers (and VEX temporaries) hold inside one block: constants, typed call results and closure-context offsets. Keys are
("r", offset)/("t", index).- arch
- copy()¶
- Return type:
- merge(other)¶
Meet of two environments: only agreeing register values survive (temporaries are block-local).
- Return type:
- Parameters:
other (RegisterEnv)
- eval(expr)¶
The value of
expr, or None.
- store(addr_expr, data_expr, size)¶
Remember a word stored into a stack slot.
- assign(stmt)¶
- Return type:
- Parameters:
stmt (Assignment)
- angr.go.analyses.block_scan.allocator(name)¶
(type prefix, descriptor argument index)for a runtime allocator, else None.
- angr.go.analyses.block_scan.block_successors(project, addr, size=None)¶
Direct successors of a block: its exits and, after a call, the return address.
- angr.go.analyses.block_scan.callee_name(project, addr)¶
- angr.go.analyses.block_scan.function_blocks(project, addr, limit=4096)¶
Block addresses of the function at
addrwith their successor lists: the CFG’s function graph when the function is known, else a bounded walk over direct jumps from the entry.
- angr.go.analyses.block_scan.is_function_addr(project, addr)¶
addrstarts a function known to the CFG or to the (pclntab-derived) symbol table.
- angr.go.analyses.block_scan.lift_ail(project, addr, size=None, manager=None)¶
The raw AIL statements of the block at
addr, or [] when it cannot be lifted.