#bytecode #disassembler #hashlink #haxe #reverse-enginneering #command-line #command-line-interface

app hlbc-cli

Hashlink 字节码反汇编器、分析器和反编译器命令行界面

8 个版本 (破坏性)

0.7.0 2023年11月16日
0.6.0 2023年5月7日
0.5.0 2022年9月14日
0.4.0 2022年8月3日
0.1.1 2022年5月21日

#486可视化

每月42次下载

MIT 许可证

250KB
6K SLoC

hlbc-cli Crates.io

Hashlink bytecode 反汇编器、反编译器和分析器命令行界面。

此包是一个程序,请参阅 hlbc 了解核心字节码库或 hlbc-decompiler 了解反编译器库

screenshot


安装

发布页面 下载预构建的二进制文件(由 CI 构建,Windows 和 Linux)。

或从最新版本构建

cargo install hlbc-cli

或从最新源构建此包

git clone https://github.com/Gui-Yom/hlbc
cd hlbc-cli
cargo build --release
# The resulting binary can be found in ../target/release

用法

hlbc<file> [-c<command>] [-w<command>]

您将获得一个提示,可以在其中输入命令。

您可以使用 -c 开关在启动时执行命令。例如,从字节码中导出所有字符串然后退出: hlbc main.hl -c "s ..; exit"。如果省略 exit 命令,应用程序将在执行启动命令后简单地启动正常提示。

使用 -,给定命令将在文件更改时执行。CLI 不会显示命令提示符。

如果您在 PATH 中有 Haxe 编译器,您还可以直接传递包含 Haxe 源代码的 .hx 文件以进行即时编译。

命令

  • exit 退出程序
  • help 帮助信息
  • explain <op> 获取操作码信息
  • wiki 在浏览器中打开字节码维基页面
  • info 关于字节码的通用信息
  • entrypoint 获取字节码入口点
  • i|int <idx> 获取索引处的整数值
  • f|float <idx> 获取索引处的浮点值
  • s|string <idx> 获取索引处的字符串
  • sstr <str> 查找字符串
  • d|debugfile <idx> 获取索引处的调试文件名
  • sfile <str> 查找名为的调试文件
  • t|type <idx> 获取索引处的类型
  • g|global <idx> 获取索引处的全局变量
  • c|constant <idx> 获取索引处的常量
  • n|native <idx> 获取索引处的本地变量
  • fnh <findex> 获取函数(findex)的头部
  • fn <findex> 获取函数(findex)
  • sfn <str> 获取名为的函数
  • infile <idx|str> 在文件中查找函数
  • fileof <findex> 获取findex定义的文件
  • refto <any@idx> 查找对指定字节码元素的引用
  • saveto <filename> 将字节码序列化到文件
  • callgraph <findex> <depth> 从函数和最大深度创建一个.dot调用图
  • decomp <findex> 反编译函数
  • decompt <idx> 反编译类

索引

在大多数接受索引的命令中,您还可以传递Rust风格的范围: a..b..ba..a..=b..。其中 ..10 表示“选择前10个项目”,而 .. 表示“显示所有内容”。

反编译器

反编译器有自己的crate!更多信息 这里

变更日志

请参阅 CHANGELOG.md

维基

有关Hashlink字节码的详细信息,可以在 这里 或使用命令 wiki 获取。

计划中的功能

  • 将命令作为其他命令的参数表达式,用于组合分析,例如使用 fn (entrypoint) 显示入口函数或 refto (sstr Hello)

依赖项

~5–15MB
~202K SLoC