A majority of the deserialization/disassembly code is adapted from @Gui-Yom's wonderful Rust dissassembler under the MIT license.
HashLink bytecode disassembler, assembly, and inspector.
Dashlink, stylized as dashlink, is a disassembler and assembler for HashLink bytecode developed with the goal of allowing users to dump HL bytecode, rewrite compiled code, and create compiled bytecode from scratch -- all through the power of a Haxe library.
This may be used for reverse-engineering Haxe programs compiled to HashLink bytecode (for whatever reason that's needed), programmatically creating HashLink programs for various utility purposes, or for dynamically rewriting/otherwise modifying programs. One such example of the latter is using a bootstrapper to weave together external assemblies at runtime.
There are numerous additional resources you may indulge in for further studying or tooling, including:
- Gui-Yom/hlbc, a HashLink disassembler written in Rust.
- Much of the deserialization/disassembly code featured in this repository is adapted from here.
- The reverse-engineered HashLink documentation featured on the repository's wiki is an extremely valuable resource as well.
- HaxeFoundation/hashlink, the HashLink virtual machine's source code, containing lots of important information.
- The GitHub wiki containing various pieces of information.
- The actual HashLink virtual machine provides useful tools for reverse-engineering as well. Mostly notably, dumping.
- The HashLink blog, featured on the haxe.org website. While slightly dated, it goes into detail about various aspects of development and the virtual machine.