Skip to content
 
 

Repository files navigation

Hermes Bytecode Decompiler

Build

Rust decompiler for Hermes bytecode (.hbc), the JS engine behind React Native. Supports HBC 40 to 99.

Install

Pre-built binaries (Linux / macOS / Windows) from Releases or Actions:

Asset suffix Platform
linux-x86_64 / linux-arm64 Linux
macos-arm64 / macos-x86_64 macOS
windows-x86_64 Windows

Archives include hermes-decomp and hermes-mcp. Verify: shasum -a 256 -c SHA256SUMS.

hermes-decomp update --check      # or --install / --version v0.1.7

From source (Rust 1.70+):

git clone https://github.com/SymbioticSec/hermes-decomp.git
cd hermes-decomp && cargo build --release
# → target/release/hermes-decomp  target/release/hermes-mcp

Quick start

hermes-decomp info app.hbc
hermes-decomp disasm app.hbc --function 5 --info --show-offsets
hermes-decomp decompile app.hbc -o out.js          # progress on stderr
hermes-decomp decompile app.hbc --deep -o out.js   # recover more names, slower
hermes-decomp decompile app.hbc --function 42
hermes-decomp tui app.hbc
hermes-decomp xref app.hbc --query "loginWithToken"

Disassembly Example

Decompilation Example

What it does

Area Commands (highlights)
Read info, disasm, decompile, tui, extract, modules, deps
Analyze xref, callgraph, graphviz, closures, debug, dump, bin-diff
RE helpers secrets, frida-hooks
Write (bytecode only) emit-hasm, asm, asm-check, patch-string, patch-function, inject-stub, create

Full flags and examples → docs/USAGE.md.

Notes:

  • Full-bundle decompile uses an on-disk .hdcache for fast reloads. Pass --no-cache to force.
  • Write tools patch bytecode / HASM. They do not recompile decompiled JavaScript.
  • decompile -o … prints pipeline stages on stderr.

MCP & library

cargo build --release -p hbc-decomp-mcp

Contributing

See CONTRIBUTING.md. Please open an issue before a PR.

cargo build --release --workspace && cargo test --workspace

Resources

License

MIT. See LICENSE.

About

A powerful decompiler that lets you reverse-engineer React Native mobile apps by converting their compiled Hermes bytecode (.hbc) files back into readable JavaScript.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages