func GetBuf
ActionGetBuf returns the victim's own byte buffer. The returned slice aliases the victim's persisted backing array (/r/laundervictim-stamped).
Package laundervictim is the "victim" realm in the launder-game tests. It exposes a package-level g that an attacker ...
Package laundervictim is the "victim" realm in the launder-game tests. It exposes a package-level g that an attacker tries to mutate by various means. Two shapes are exposed:
Both are allocated at init under this realm's context, so their PkgID stamp is /r/.../laundervictim. The attacker's job is to make the stamp not match m.Realm at the write site — by laundering the stamp, capturing the value, or exploiting a borrow-rule shift.
GetBuf returns the victim's own byte buffer. The returned slice aliases the victim's persisted backing array (/r/laundervictim-stamped).
GetImm returns the pointer to gImm — a *Immutable, which has no mutator method in /p/launderpkg. Victim's intent: callers can read but not write.
GetPtr returns the pointer to gPtr's underlying Object. The returned pointer aliases the victim's persisted state.
GetVal returns g by VALUE (caller gets a copy).
GetValAddr returns &gVal — a pointer to the value-typed slot. The returned pointer aliases the victim's persisted state.
Invoke calls the attacker's methods passing the victim's g by both value and by pointer.
ReadVal / ReadPtr / ReadImm / ReadBuf report the current values for after-attack verification.
Exploiter is the interface the victim accepts. The attacker supplies an implementation; the victim invokes Something(g) passing its own g. This is the "victim hands attacker the data" vector.