angr.rust.utils.ail

class angr.rust.utils.ail.CallFinder

Bases: AILBlockViewer

Find the first Call statement or expression in a block.

__init__(include_macro=False)
angr.rust.utils.ail.find_call(obj, include_macro=False)
Parameters:

obj (Block | Statement | Expression)

angr.rust.utils.ail.has_call(obj, include_macro=False)
Parameters:

obj (Block | Statement | Expression)

angr.rust.utils.ail.get_terminal_call(block)
Parameters:

block (Block)

angr.rust.utils.ail.unwrap_stack_vvar_reference(expr)
Return type:

VirtualVariable | None

angr.rust.utils.ail.unwrap_combo_reg_vvar_reference(expr)
Return type:

VirtualVariable | None

angr.rust.utils.ail.deref_vvar_and_offset(expr)

If expr is a dereference of a VirtualVariable (possibly with an offset), return the VirtualVariable and offset. Otherwise, return (None, None).

Return type:

tuple[VirtualVariable, int] | tuple[None, None]

angr.rust.utils.ail.extract_vvar_and_offset(expr)

If expr is a VirtualVariable (possibly with an offset), return the VirtualVariable and offset. Otherwise, return (None, None).

Return type:

tuple[VirtualVariable, int] | tuple[None, None]

angr.rust.utils.ail.unwrap_stack_vvar_reference_with_offset(expr)
Return type:

tuple[VirtualVariable, int] | tuple[None, None]

class angr.rust.utils.ail.CallVisitor

Bases: AILBlockViewer

Visit all Call statements and expressions in a graph, invoking a callback.

__init__(callback)
visit(graph)