angr.go.utils.multiword

Multi-word Go values that live in one virtual variable rather than in a combo register: stack-passed parameters and stack results under the all-stack ABI0 (386). The body reads their words as Extract(v, k).

angr.go.utils.multiword.extract_piece(expr)

Extract(v, k) -> (v, k) in bytes.

Return type:

tuple[VirtualVariable, int] | None

Parameters:

expr (Expression)

angr.go.utils.multiword.multiword_vvars(pass_)

varid -> Go struct type of every virtual variable holding a whole string/slice/interface/tuple value: parameters typed by the prototype, results of calls with a typed result, and copies of either.

Return type:

dict[int, SimType]

class angr.go.utils.multiword.VVarUseCounter

Bases: AILBlockViewer

Occurrences of every virtual variable (a definition counts as one).

__init__()
angr.go.utils.multiword.vvar_use_counts(graph)
Return type:

dict[int, int]