GitPedia

Webcrack

Deobfuscate obfuscator.io, unminify and unpack bundled javascript

From j4k0xb·Updated June 23, 2026·View on GitHub·

webcrack is a tool for reverse engineering javascript. It can deobfuscate [obfuscator.io](https://github.com/javascript-obfuscator/javascript-obfuscator), unminify, transpile, and unpack [webpack](https://webpack.js.org/)/[browserify](https://browserify.org/), to resemble the original source code as much as possible. The project is written primarily in TypeScript, distributed under the MIT License license, first published in 2023. It has gained significant community traction with 2,751 stars and 315 forks on GitHub. Key topics include: ast, browserify, bundle, debundle, deobfuscation.

Latest release: v2.16.0
April 25, 2026View Changelog →

Test
npm
license
Netlify Status

<p align="center"> <img src="https://user-images.githubusercontent.com/55899582/231488871-e83fb827-1b25-4ec9-a326-b14244677e87.png" width="200"> </p> <h1 align="center">webcrack</h1>

webcrack is a tool for reverse engineering javascript.
It can deobfuscate obfuscator.io, unminify,
transpile, and unpack webpack/browserify,
to resemble the original source code as much as possible.

Try it in the online playground or view the documentation.

  • 🚀 Performance - Various optimizations to make it fast
  • 🛡️ Safety - Considers variable references and scope
  • 🔬 Auto-detection - Finds code patterns without needing a config
  • ✍🏻 Readability - Removes obfuscator/bundler artifacts
  • ⌨️ TypeScript - All code is written in TypeScript
  • 🧪 Tests - To make sure nothing breaks

Requirements

Node.js 22 or 24.

<!-- TODO: add 26 on release -->

[!NOTE]
webcrack depends on isolated-vm, which does not recommend using odd-numbered Node.js releases because they frequently break ABI/API compatibility with V8.

Command Line Interface

bash
npm install -g webcrack@latest

Examples:

bash
webcrack input.js webcrack input.js > output.js webcrack bundle.js -o output-dir

CLI Reference

API

bash
npm install webcrack@latest

Examples:

js
import fs from 'fs'; import { webcrack } from 'webcrack'; const input = fs.readFileSync('bundle.js', 'utf8'); const result = await webcrack(input); console.log(result.code); console.log(result.bundle); await result.save('output-dir');

API Reference

Donations

If this project has helped you, consider donating to support its development:

  • GitHub Sponsors
  • Ethereum: 0xb3eFD474Dd8aFA715F563EfA322F6ae9Ae9DfCeA
  • Bitcoin: bc1qc3u7ef2rue75f6t8x290r0qk0u84f0ln8ndjun
  • Solana: 6w9SFAYBxCKdtuj8DEAV9YT5zP68g4PyEkb21AmdxcBq
  • Monero: 87iYegrerGf1DUsTvUnbsv8gjTMJmzS3idRxHWkCy4iz1Xz5CUnDXy3VkTToSg32LUW3cwNrgLKd1TXRJqJY7MnvVR9yidm

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from j4k0xb/webcrack via the GitHub API.Last fetched: 6/23/2026