Crates.io | hlbc |
lib.rs | hlbc |
version | 0.7.0 |
source | src |
created_at | 2022-05-21 15:22:01.421137 |
updated_at | 2023-11-16 21:23:47.589525 |
description | Hashlink bytecode disassembler and analyzer |
homepage | |
repository | https://github.com/Gui-Yom/hlbc |
max_upload_size | |
id | 590761 |
size | 120,409 |
Hashlink bytecode disassembler and analyzer.
This crate is a library, see hlbc-cli for an actual program to use.
See CHANGELOG.md.
The decompiler is present in the hlbc-decompiler
crate and is currently incomplete (and might never be 100% complete).
See the wiki for examples of decompilation output.
A wiki detailing the specifics of Hashlink bytecode is available here. The wiki also details the specifics of Haxe to hashlink compilation and decompilation.
This library is made in Rust, a C API is in the works which could permit using this lib in many other projects, but for now it is only Rust friendly.
Other alternatives include :
There are 98 different bytecode instructions, there is no way I manually write code for them. Most of the serialization code for these opcodes is generated through a proc macro (see hlbc-derive). Making that a declarative macro would probably turn out really hard. The only time I needed to write 98 different branches was for the formatting used when displaying the instructions (src/fmt.rs).