ASTBinaryReader class
Decodes a binary AST image — .avma, for Apollo Virtual Machine Archive —
back into a parsed ASTRoot.
The CRC-32 is verified on every read. It detects corruption — a truncated write, bit rot, a mangled transfer — but it is not a defence against anyone: an attacker who edits the file recomputes it in microseconds. Pass a verifier to require a signature made with a key they do not have.
An unsigned image deserves exactly as much trust as the source it came from; loading one and running it is equivalent to running arbitrary code from that source.
Constructors
- ASTBinaryReader({ASTBinaryVerifier? verifier, bool verifyChecksum = true})
-
const
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- verifier → ASTBinaryVerifier?
-
Checks the image's signature. When given, the image must be signed and
the signature must verify.
final
- verifyChecksum → bool
-
Whether to verify the CRC-32. On by default; turning it off is for
forensics and repair tooling, not for loading.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
readCodeUnit(
Uint8List bytes, {String? id, String? namespace}) → BinaryCodeUnit -
Decodes
bytesinto a CodeUnit whoserootis already populated. -
readInfo(
Uint8List bytes) → ASTBinaryInfo - Reads the header and metadata without decoding the AST.
-
readRoot(
Uint8List bytes) → ASTRoot -
Decodes
bytesinto a fully resolved ASTRoot. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
isASTBinary(
Uint8List bytes) → bool -
Whether
byteslooks like a binary AST image, by its magic.