angr.rust.analyses.rust_calling_convention

class angr.rust.analyses.rust_calling_convention.Pathfinder

Bases: object

Find paths through the CFG that satisfy certain constraints.

__init__(graph, srda_mixin=None)
Parameters:

srda_mixin (SRDAMixin | None)

find_ret2arg0_paths(remove_phi=False)
static path_to_graph(path)
find_backward_path(block, max_length=None)
find_forward_path(block, max_length=None)
class angr.rust.analyses.rust_calling_convention.RustCallingConventionAnalysis

Bases: Analysis

Infer function prototype including struct return type and struct argument types.

Function prototype is inferred based on collected facts from the callee function body and the caller function body.

Facts collected from callee:
  1. Memory writes to the first argument

  2. Memory reads to all arguments

Facts collected from caller:
  1. Initialization of function arguments at callsite (memory writes at callsite)

  2. Uses of return value after callee is called

__init__(func, *, ail_manager, callsite_path=None, post_callsite_path=None, is_call_expr=None, depth=0, max_depth=8, callsite_discriminant_hint=None)
Parameters:

ail_manager (Manager)

property prototype
class angr.rust.analyses.rust_calling_convention.RustCallingConventionModel

Bases: object

Stores inferred calling convention facts for a Rust function.

__init__()

Submodules