gui-yom / hlbc Goto Github PK
View Code? Open in Web Editor NEWHashlink bytecode disassembler, analyzer, decompiler and assembler.
Home Page: https://gui-yom.github.io/hlbc/
License: MIT License
Hashlink bytecode disassembler, analyzer, decompiler and assembler.
Home Page: https://gui-yom.github.io/hlbc/
License: MIT License
Some sort of feature to decompile everything in a bytecode file back out to its original filenames (that is, if debug information is embedded in the bytecode) would be greatly appreciated for modding projects - as in this project's current state, it can't really be used to modify a game's code, only poke around it a bit. In a similar vain, I would also love to see a tool in the GUI that allows partial code changes to be made in the decompiler pane without having to fully decompile and recompile the entire game - as sometimes, functions cannot be decompiled to begin with (especially switch statements!) and have to be reversed by hand.
gui-v0.3.0 (latest)
When you search for a function, you cannot do anything with the results.
When you search for a function, you can right-click on a result to open it in the Inspector, or decompile it (like in the Functions Tab).
I was poking around the Dead Cells bytecode with the GUI and noticed that a lot of functions seemed to cut off at a certain depth, even though the opcodes still had more instructions - so I wrote a small test class:
class Nested {
static function main() {
var b = 512.0;
while (b > 5) {
b /= 2;
if (b < 10) {
while (b < 100) {
b *= 2;
if (b > 50) {
break;
}
}
}
}
}
}
Once decompiled, it yields the following output:
class Nested {
static function main() {
var b = 512;
while ([no condition]) {
b = b / 2;
while ([no condition]) {
b = b * 2;
break;
}
}
}
}
I assume the [no condition]
blocks are a separate issue - but the lack of nesting beyond a certain point is far more concerning when it comes to the overall accuracy of the decompilation.
I want to decompile dead cells source code, but when I write .\hlbc.exe '.\Dead Cells\discord.hdll'
, I get Error: Invalid magic bytes (expected [72, 76, 66], found [77, 90, 144])
. The same with ui.hdll Error: Invalid magic bytes (expected [72, 76, 66], found [77, 90, 144])
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.