Crate hlbc

source · []
Expand description

Hashlink bytecode disassembler and analyzer. See Bytecode for an entrypoint to the library.

Note about safety

We don’t deal with self-references, hence we deal with indexes into structures. Be careful when calling functions on Ref* objects, as no bound checking is done and every index is assumed to be valid.

Modules

Analysis functions and callgraph generation

Functions to display bytecode elements

Opcodes definitions.

Bytecode elements definitions. All the Ref* types in this modules are references to bytecode elements like constants or function. They are required since we cannot use rust references as that would make our structure self-referential. They makes the code look a bit more complicated than it actually is. Every Ref* struct is cheaply copyable.

Structs

Bytecode structure containing all the information. Every field is public for flexibility, but you aren’t encouraged to modify them.

Enums

Type Definitions