Baba01hacker666/HBC-Tool

GitHub: Baba01hacker666/HBC-Tool

一个用于 React Native Hermes 字节码的反汇编与汇编工具,帮助安全研究者在 Hermes 字节码层面进行逆向分析和补丁修改。

Stars: 3 | Forks: 1

hbctool logo

Python 3.x PyPI version MIT License

一个用于 React Native bundles 的 Hermes 字节码反汇编器和汇编器。
最初由 baba01hacker 创建,并由 Doraemon cyber team 继续维护。

## 为什么选择 hbctool React Native 应用可以通过 Hermes 引擎发布 JavaScript,该引擎会将应用代码编译为 Hermes 字节码。这使得逆向工程、代码检查和补丁操作比处理纯 JavaScript bundles 更加困难。 `hbctool` 可以帮助你完成这些工作流,它允许你: - 将 Hermes bundle 反汇编为可读的 HASM 表示 - 修改 metadata、字符串和指令 - 从编辑后的输出重新构建有效的 Hermes 字节码 bundle - 使用纯 Python 路径或可选的原生 C++ 加速路径 ## 功能特性 - 将 Hermes 字节码 bundles 反汇编为包含 metadata、字符串和指令的目录。 - 将编辑后的 HASM 输出汇编回 Hermes bundle。 - 可选的 C++ 加速,用于更快的低级别操作。 - 纯 Python 和原生执行路径的测试覆盖。 - 支持 Hermes 字节码版本 `59`、`62`、`74`、`76`、`83`、`84`、`85`、`86`、`87`、`88`、`89`、`90`、`91`、`92`、`93`、`94`、`95` 和 `96`。 ## 安装 ### 快速安装 ``` python3 -m pip install hbctool-cli ``` ### 本地开发安装 ``` python3 -m pip install --upgrade pip setuptools wheel python3 -m pip install -e . ``` ### PIPX 安装 ``` pipx install git+https://github.com/Baba01hacker666/HBC-Tool.git ``` ### 构建可选的原生扩展 ``` python3 setup.py build_ext --inplace ``` 在运行时启用加速路径: ``` export HBCTOOL_FASTUTIL=1 ``` 验证原生模块是否可用: ``` python3 -c "import hbctool._fastutil, hbctool._bitcodec; print('native extensions ok')" ``` 如果扩展不存在,`hbctool` 仍然可以在纯 Python 模式下工作。 ## 使用方法 显示帮助: ``` hbctool --help ``` CLI 语法: ``` Usage: hbctool disasm [] hbctool asm [] [] hbctool --help hbctool --version ``` 示例: ``` hbctool disasm index.android.bundle test_hasm hbctool asm test_hasm index.android.bundle hbctool disasm index.android.bundle hbctool asm ``` 默认情况下: - `disasm` 写入到 `hasm/` 目录 - `asm` 从 `hasm/` 读取并写入 `index.android.bundle` 对于 Android 目标平台,Hermes bundle 通常可以在应用的 `assets/` 目录下找到,名为 `index.android.bundle`。 ## 输出布局 反汇编操作会写入三个文件: - `metadata.json` - `string.json` - `instruction.hasm` 这使得在重新构建之前,可以单独检查字符串、metadata 和指令。 ## 基准测试 你可以使用辅助脚本对往返路径进行基准测试,并比较纯 Python 与原生路径的速度: ``` python3 scripts/benchmark_roundtrip.py Testfiles/index.android.bundle --iterations 2 --max-size-ratio 1.10 --min-core-speedup 2.0 --json output/bench/report.json ``` 报告包含: - 两种执行模式的时间计算 - 计算出的加速比 - 输出与输入的大小比例检查 - 底层 memcpy 加速检查 当配置的安全或性能阈值未满足时,脚本将以非零状态退出,这使其适合用于 CI 门控。 ## 开发 运行测试套件: ``` python3 -m pytest -q ``` 在启用原生路径的情况下运行测试套件: ``` HBCTOOL_FASTUTIL=1 python3 -m pytest -q ``` 构建可分发的构建产物: ``` python3 -m pip install --upgrade build python3 -m build ``` 如果构建的 wheel 包含编译的扩展,它将被打上平台标签,而不是 `py3-none-any`。 ## 致谢 - 原作者工作:`baba01hacker` - 持续的维护和重制:`Doraemon cyber team` ## 许可证 本项目基于 MIT 许可证发布。请参阅 [LICENSE](/LICENSE)。
标签:App安全, C++加速, HASM, Hermes字节码, JavaScript引擎, Python, React Native, 云安全监控, 云资产清单, 反汇编工具, 字节码修改, 无后门, 汇编工具, 目录枚举, 移动安全, 逆向工具, 逆向工程, 静态分析