By NHI Mgmt Group Editorial TeamBased on Symbiotic Security: “Research Release: Deterministic Decompilation of Hermes Bytecode” (July 23, 2026)

TL;DR: Deterministic decompilation can turn Hermes bytecode back into readable JavaScript, recover control flow, and reconstruct Metro modules across 60 HBC versions, giving reviewers a far clearer path through React Native application logic than disassembly alone, according to Symbiotic Security. The shift matters because security review is moving from instruction-level inspection toward evidence-driven code reconstruction.


At a glance

What this is: Symbiotic Security describes deterministic Hermes bytecode decompilation that reconstructs readable JavaScript from HBC, including control flow and Metro modules.

Why it matters: It matters because React Native review often stalls at disassembly, and security teams need code reconstruction to assess application logic, hidden flows, and review gaps more accurately.


Context

Hermes bytecode is the compiled form of JavaScript used by many React Native applications, so security reviewers often inspect a binary rather than source-like code. That creates a governance gap: conventional static review can see instructions, but it cannot always recover the structure needed to reason about business logic, control flow, or module boundaries.

Deterministic decompilation narrows that gap by turning bytecode into a reviewable representation that preserves the relationship between binary instructions and higher-level code constructs. The identity angle is indirect but real in mobile application security, because code review often underpins authentication flows, token handling, session logic, and other controls that affect human and non-human access pathways.


Key questions

Q: How should teams review React Native apps when Hermes bytecode hides the source code?

A: Teams should treat Hermes bytecode as a visibility problem and use deterministic decompilation when review depends on understanding business logic, branching, or module boundaries. Disassembly alone shows instructions, but security assurance usually needs the recovered structure behind those instructions. That is the difference between seeing code fragments and reviewing application behaviour.

Q: Why does deterministic decompilation improve security assurance for mobile applications?

A: Because it reduces ambiguity in the review process. When the same bytecode always produces the same recovered output, analysts can compare builds, trace control flow, and reason about logic changes without reinterpreting raw opcodes each time. That consistency makes findings more defensible and easier to verify across releases.

Q: What are the signs that bytecode-only review is failing?

A: The clearest signs are stalled audits, uncertain control-flow interpretation, and repeated manual effort to reconstruct the same application paths from disassembly. If reviewers cannot reliably identify modules, branches, or function roles, then the review process is losing the evidence needed to support security decisions.

Q: When should teams trust recovered output versus raw bytecode?

A: Use raw bytecode for provenance and low-level inspection, but rely on recovered output when the question is what the application does. If the decision involves access logic, token handling, or data flow, the reconstructed view is the one that better supports governance and remediation.


Technical breakdown

How Hermes bytecode review differs from disassembly

Hermes bytecode is a versioned binary format produced when React Native JavaScript is precompiled for runtime. Disassembly exposes opcodes such as Mov, Call, and Add, but it does not rebuild the program structure that reviewers need to understand intent. That leaves control flow, module boundaries, and high-level constructs hidden behind instruction sequences. A deterministic decompiler changes the review model by making the output stable enough to compare, annotate, and reason about rather than manually reconstructing each branch from scratch.

Practical implication: Treat disassembly as incomplete evidence and use decompilation when code review must establish how the application actually behaves.

Why control-flow structuring matters for React Native code

Control-flow recovery is the bridge between raw bytecode and readable application logic. The decompiler lifts instructions into an intermediate representation, maps registers to variables, and analyzes jumps to rebuild if, while, and for structures, including Hermes-specific loop inversion patterns. Without that step, reviewers can miss how branches nest, where loops terminate, and how functions interact across modules. Deterministic structuring matters because it makes the same bytecode produce the same recovered form, which is essential for repeatable audit work and for tracking changes across releases.

Practical implication: Use recovered control flow to review branching logic, authorization checks, and state handling instead of relying on manual opcode tracing.

What Metro module reconstruction adds to security analysis

Metro modules are the packaging layer React Native uses to organize application code, and reconstructing them into ECMAScript modules with imports and exports restores context that binary inspection normally strips away. That context helps reviewers see where functionality starts, where dependencies are pulled in, and how code paths are assembled before execution. The value is not just readability. It is the ability to reason about the app as a system of interacting modules, which is closer to how real application risk appears in a security review.

Practical implication: Map reconstructed modules to authentication, token, and data-handling paths so review findings land at the right control point.


NHI Mgmt Group analysis

Deterministic decompilation is becoming a review control, not just a reverse-engineering convenience. When production apps ship bytecode instead of readable source, security teams lose direct visibility into the constructs that matter for assurance. A stable decompiler makes the recovered code reviewable, reproducible, and suitable for comparing expected logic against shipped logic. The practical consequence is that mobile application governance can move from partial inspection toward evidence-based verification.

Hermes bytecode review exposes a control gap in how teams validate React Native applications. Disassembly is too low-level to answer many assurance questions about branches, module boundaries, and function structure. That means code review programmes may falsely assume they have inspected logic that is still effectively opaque. The named concept here is bytecode review opacity, the point at which binary packaging outpaces human understanding and weakens review quality. Practitioners should treat that opacity as a control deficiency, not an inconvenience.

Security teams should expect AI-assisted review workflows to depend on deterministic reconstruction. The article’s MCP server detail is important because it shows decompilation output can be fed into broader analysis pipelines without forcing manual translation at every step. That raises the bar for application assurance, but it also means reviewers must control what evidence enters automated workflows. Human review remains necessary, especially where application code governs authentication, session handling, or access decisions.

This shift has implications for how mobile application assurance is scoped across development and security teams. Once recovered code becomes readable, teams can ask sharper questions about what the application actually does versus what build-time assumptions suggest it should do. That is especially relevant where React Native apps participate in identity flows, secret handling, or token-based access. Practitioners should align review depth with the risk of the paths being examined, not with the convenience of the build output.

What this signals

Bytecode review opacity: when production packaging hides application structure, teams lose the ability to evaluate the logic that actually governs access and data handling. Deterministic reconstruction reduces that opacity, but it does not remove the need for human judgment over high-risk flows.

For practitioners, the main change is not the availability of another analysis tool. It is the expectation that mobile code review should produce evidence about control flow, module boundaries, and access-relevant logic before teams treat the review as complete.


For practitioners

  • Review React Native apps from recovered code, not just opcodes Use deterministic decompilation when a production bundle needs to be assessed for branching logic, module structure, and security-sensitive flows that disassembly leaves unclear.
  • Validate authentication and token-handling paths in reconstructed modules Trace login, session, and credential-related functions in the decompiled ECMAScript modules so review findings land on the logic that actually governs access.
  • Compare recovered output across application releases Use stable decompiler output to spot unexpected logic changes, added dependencies, or altered control flow between builds of the same React Native application.
  • Gate AI-assisted analysis with human verification If you pipe decompiled code into an MCP-enabled workflow, review the reconstructed result before using it for security decisions or remediation planning.

Key takeaways

  • Hermes bytecode can conceal the application structure that security teams need to validate business logic, so disassembly alone is often not enough for meaningful review.
  • Deterministic reconstruction makes recovered code stable enough for repeatable analysis, comparison across releases, and clearer assessment of access-sensitive flows.
  • Practitioners should use decompiled output to examine authentication, token handling, and control flow, then verify those findings against the shipped binary.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

MITRE ATT&CK provides the primary governance reference for this term.

FrameworkControl / ReferenceRelevance
MITRE ATT&CKTA0007;TA0009 — Discovery; CollectionRecovered code helps analysts spot logic used to locate and gather sensitive data or tokens.
Recommendation — Map reconstructed application logic to Discovery and Collection tactics when reviewing how code handles secrets or data.

Key terms

  • Hermes Bytecode: Hermes bytecode is the compiled binary form of JavaScript used by React Native applications. It improves runtime performance, but it also makes application logic harder to inspect directly because reviewers are no longer looking at human-readable source.
  • Deterministic Decompilation: Deterministic decompilation is the process of converting bytecode back into structured source-like output in a repeatable way. For security teams, the value is not perfect source recovery, but stable output that can support validation, comparison, and audit trails.
  • Control Flow Graph: A control flow graph is a structural model of how code paths move through a program. Static analysis uses it to trace how data and logic can interact, which helps identify reachable vulnerabilities and distinguish exploitable paths from harmless patterns in isolation.
  • Metro Module Reconstruction: Metro module reconstruction restores React Native packaging into module-level code with imports and exports. It gives reviewers back the context needed to understand how application pieces connect, which is important when assessing authentication, token handling, or data movement across components.

Deepen your knowledge

NHI Mgmt Group covers identity security, NHI governance, and agentic AI through independent research, practitioner guides, and the NHI Foundation Level course. Explore the course when your programme needs stronger control over identities, credentials, and governed access decisions.
NHIMG Editorial Note
Published by the NHIMG editorial team on August 19, 2026.
Updated on October 12, 2026.
NHI Mgmt Group, the independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org