angr.utils.ail_serialization¶
Typed protobuf pack/parse helpers for AIL-typed containers.
AIL leaves (Block / Statement / Expression) serialize through their native to_bytes() methods (postcard,
implemented in Rust); the helpers here only encode the Python container structure around them using the typed
messages in angr.protos.ail_types_pb2. There is no generic fallback: any value shape not covered by the
schema raises TypeError.
- angr.utils.ail_serialization.simvar_to_bytes_polymorphic(v)¶
Polymorphic SimVariable encoding:
b"<ClassName>\0<proto bytes>".- Return type:
- Parameters:
v (SimVariable)
- class angr.utils.ail_serialization.BlockPool¶
Bases:
objectA shared pool of
Block.to_bytes()payloads for deduplicating byte-identical blocks across graphs.- __init__()¶
- Return type:
None
- angr.utils.ail_serialization.pack_graph(graph, pool=None)¶
Encode a DiGraph of ailment Blocks. Node identity is preserved through per-graph block indices. When
poolis given, block payloads are deduplicated into it and the message stores pool refs instead of inline payloads.
- angr.utils.ail_serialization.parse_graph(msg, pool_payloads=None)¶
- Return type:
DiGraph- Parameters:
msg (AilGraph)
- angr.utils.ail_serialization.pack_arg_vvars(arg_vvars)¶
- angr.utils.ail_serialization.parse_arg_vvars(msg)¶
- angr.utils.ail_serialization.pack_ite_exprs(ite_exprs)¶
- angr.utils.ail_serialization.parse_ite_exprs(msg)¶
- angr.utils.ail_serialization.pack_static_vvars(static_vvars)¶
- Return type:
- Parameters:
- angr.utils.ail_serialization.parse_static_vvars(msg)¶
- Return type:
- Parameters:
msg (StaticVVars)
- angr.utils.ail_serialization.pack_static_buffers(static_buffers)¶
- Return type:
- Parameters:
- angr.utils.ail_serialization.parse_static_buffers(msg)¶
- Return type:
- Parameters:
msg (StaticBuffers)