v0.2.0
Adds a full bytecode write path (patch, inject, assemble, create), analyst tooling, and a wave of decompilation quality and graph accuracy fixes, on top of v0.1.7.
What's new
- Write path: edit and rebuild
.hbcfiles.patch-stringreplaces any string of any length, including identifiers with recomputed Jenkins hashes and non ASCII values re encoded as UTF 16.patch-function(andasm) assemble a function body from HASM, growing, shrinking or same size, on both legacy and modern (v97+) headers, with out of line large header relocation for overflowed functions.inject-stubadds a runtime no op or a log on entry.createbuilds a minimal file from scratch, legacy layout for v96 and lower and modern layout for v97 and newer. Every operation is verified on real Hermes VMs across HBC 74, 76, 83, 84, 89, 96 and 98. - Analyst tooling:
dumpgains structural tables (cjs-modules, regexp, obj-shapes, function-sources, string-kinds, sections, big-int, array-buffer) with a--jsonflag,disasm --infoprints a per function metadata banner, and a newcallgraphcommand emits caller to callee edges as text or Graphviz DOT. The MCP server exposes the same analyst tools plus the write path. - Decompilation quality: better JSX resolution, loop reconstruction for while(true) latches and guarded do-while, const and let inference, closure and factory slot naming, and many JS validity fixes (brackets, IIFE parens, export dedupe). Discord HBC96 quality gaps closed.
- Graph accuracy: the call graph now resolves string operands and indirect
globalThis.foocallees, raising resolved caller edges on a real Metro bundle from 2361 to 2789, and the control flow graph no longer emits a phantom trailing block. - Security: the analysis cache fingerprint is computed at build time from the crate version, source files and embedded tables instead of reading the executable, and the secret scanner test assembles its sample key at runtime. This clears the flagged static analysis findings.
Everything from v0.1.7 is included: the built in self update command, TUI xref navigation, loop reconstruction, function name recovery, HBC >=97 support, Metro and ESM module reconstruction, the on disk analysis cache, and the CLI and MCP analyst tooling.
Downloads
Each archive contains the hermes-decomp and hermes-mcp binaries. Verify with shasum -a 256 -c SHA256SUMS.
| File | SHA256 |
|---|---|
| hermes-decomp-v0.2.0-linux-x86_64.tar.gz | bb3fde42a004114c5864b895edb0ca3260ae09a6a5040554a2a6ece70210bb5e |
| hermes-decomp-v0.2.0-macos-arm64.tar.gz | f31c7ff817c46001795e1492d2151881cb17cf69c74c7961d31acd32ee79e83e |
| hermes-decomp-v0.2.0-windows-x86_64.zip | 340067c6aa27c395a9fa19bf9d2434269a93ef40fd44e7ecfba0aa862cbff544 |