Threat Intel
Unpacking JSCeal: Static Deobfuscation of Compiled V8 Bytecode Reveals Crypto‑Stealer Capabilities
JSCeal, a cryptocurrency‑focused stealer, arrives on victims as compiled V8 bytecode (.jsc) bundled with a Node.js runtime. Check Point Research built a fully static deobfuscation pipeline—extending the open‑source View8 decompiler—to recover pseudocode from the obfuscated, version‑specific bytecode. The recovered code exposes keylogging, credential theft, browser hijacking, and a local MITM proxy, while recent variants add extra encryption, target newer Node.js/V8 releases, and expand to macOS. The work was showcased at Black Hat USA 2026 and the deobfuscator tool is now publicly available.
JSCeal is a stealthy cryptocurrency stealer that hides in compiled V8 bytecode (.jsc) and runs inside a bundled Node.js runtime. The malware first obfuscates its JavaScript source with javascript‑obfuscator, then compiles it into V8’s internal bytecode, stripping away the source‑level information that most analysts rely on.
Why the Bytecode Format Matters
Compiled bytecode is version‑specific and not designed for reverse‑engineering. Traditional JavaScript deobfuscation tools falter because they expect source code, not the binary representation that V8 uses internally. This makes JSCeal a moving target for defenders.
Check Point’s Static Deobfuscation Pipeline
Using the open‑source View8 decompiler as a foundation, researchers extended it to produce reproducible pseudocode and added custom passes for:
- Value propagation and string reconstruction
- Control‑flow unflattening
- Proxy and operation‑wrapper resolution
- General cleanup for easier human reading
Optionally, a large‑language‑model assisted renaming step can make the recovered codebase more navigable. The entire toolkit, jsc_deobfuscator, is now available to the community.
What the Deobfuscated Code Reveals
The recovered pseudocode exposes a full suite of theft and surveillance capabilities:
- Keylogging and screenshot capture
- Browser credential harvesting and crypto‑wallet extraction
- HTTPS traffic interception via a local MITM proxy
- Credential theft from popular crypto‑applications
“The deobfuscator lets us read the malware as code again, enabling detailed analysis, sample comparison, and evolution tracking.”
Recent Evolution
Newer variants target the latest Node.js/V8 releases, generate fresh code caches, introduce an additional payload‑encryption layer, and now also target macOS platforms. These changes demonstrate the attackers’ ongoing adaptation to platform updates and defensive tooling.
Impact for Defenders
With a static deobfuscation pipeline, analysts can now keep pace with JSCeal’s rapid evolution, identify new variants quickly, and develop detection signatures against its core capabilities. The open availability of the deobfuscator also lowers the barrier for smaller security teams to perform in‑depth analysis.