Skip to content

Releases: j4k0xb/webcrack

v2.8.0

12 Aug 20:52
Compare
Choose a tag to compare

Features

  • Mangle names: function _0x379214(_0x5e1b2e) { -> function a(b) {
    • CLI option: -m, --mangle
    • JS API: await webcrack(code, { mangle: true });
    • Playground: image
  • View unpacked bundle modules in the playground
    image
  • Flip *, ^, &, | operators, negative numbers, NaN/Infinity. E.g. if (1 & x) -> if (x & 1)
  • Detect more webpackJsonp variations: (this.webpackJsonp = this.webpackJsonp || []).push(...)

Performance

  • 50% faster esm conversion

v2.7.0

23 Jul 03:53
v2.7.0
Compare
Choose a tag to compare

Features

  • unpack modules of an individual webpackJsonp chunk:
(window.webpackJsonp = window.webpackJsonp || []).push([
  [16],
  { 1217: function (e, t, n) { ... } },
   ...
]);

v2.6.3

21 Jul 15:22
Compare
Choose a tag to compare

Security

Performance

  • Faster webpack matching when a function has many statements

v2.6.2

12 Jul 14:47
Compare
Choose a tag to compare

Bug Fixes

  • deobfuscation fails with comments (#13)

v2.6.1

10 Jul 15:47
Compare
Choose a tag to compare

Bug Fixes

  • babel traverse ^7.22.7 noScope regression workaround

v2.6.0

10 Jul 12:47
Compare
Choose a tag to compare

Features

  • unpack webpack 0.11 and development builds
  • handle external browserify dependencies without an id like { 'vscode': undefined }
  • allow stdin/stdout for cli: echo '1+1' | webcrack, webcrack input.js > output.js
  • dedicated debug logger which is disabled when using webcrack as a dependency
  • convert JSON.parse("[1,2,3]") to [1, 2, 3]
  • detect for (; []; ) { as infinite loop
  • detect inverted dead code conditions: if (!("abc" !== "xyz")) {
  • path mappings not starting with ./ (e.g. { lodash: m.numericLiteral(4) }) are now treated as node_modules

Bug Fixes

  • detect top-level bundle first (previously it always tried to find a nested webpack bundle before browserify)
  • apply bundle transforms regardless of saving (when using the js api)
  • stricter readonly object checks for control flow flattening (ignore const a = { x: 1 }; a.x++; etc)

Performance

  • 40% faster string array and decoder renaming
  • faster unminify/unpack transforms

v2.5.1

04 Jun 15:41
Compare
Choose a tag to compare

New documentation site: https://webcrack.netlify.app/docs and easier to install (no native node addons).

Performance

  • unminify: 660% faster
  • evaluate number expressions: 110% faster
  • debug protection: 90% faster
  • self defending: 85% faster
  • control flow: 80% faster
  • merge strings: 65% faster
  • inline decoded strings: 45% faster
  • deobfuscate: 40% faster

v2.5.0

19 May 22:20
v2.5.0
Compare
Choose a tag to compare

Performance

Features

  • Unpack latest version of browserify

v2.4.0

18 May 00:58
Compare
Choose a tag to compare

Features

  • unpack browserify bundles

Bug Fixes

  • always use / for paths (depended on the operating system previously)

v2.3.0

08 May 02:26
v2.3.0
Compare
Choose a tag to compare

Features

  • Convert react components back to JSX.
React.createElement(
  'div',
  null,
  React.createElement('span', null, 'Hello ', name)
);

->

<div>
  <span>Hello {name}</span>
</div>