Skip to content

Latest commit

 

History

History
25 lines (16 loc) · 2.09 KB

README.md

File metadata and controls

25 lines (16 loc) · 2.09 KB

A majority of the deserialization/disassembly code is adapted from @Gui-Yom's wonderful Rust dissassembler under the MIT license.


dashlink

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.

Practical Uses

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.

Extra Resources

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.