GithubHelp home page GithubHelp logo

gui-yom / hlbc Goto Github PK

View Code? Open in Web Editor NEW
53.0 53.0 8.0 1.33 MB

Hashlink bytecode disassembler, analyzer, decompiler and assembler.

Home Page: https://gui-yom.github.io/hlbc/

License: MIT License

Rust 97.68% Haxe 1.42% HTML 0.69% Just 0.06% Shell 0.15%
analysis bytecode cli decompiler disassembler gui hashlink haxe

hlbc's People

Contributors

greglando113 avatar gui-yom avatar turuslan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

hlbc's Issues

(Feature request) Bulk decompilation

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.

Feature Request: Let us work with search results

Program Version

gui-v0.3.0 (latest)

Current Result

When you search for a function, you cannot do anything with the results.

Expected Result

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).

Heavily nested functions do not decompile correctly

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.

.hdll decompilation doesn't work

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])

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.