Skip to content

Releases: lorenzoferre/deobfuscator

v1.0.1

Choose a tag to compare

@lorenzoferre lorenzoferre released this 22 Sep 11:18
a22e113

Changelog

v1.0.1

  • add the sourceType for parsing scripts that do not use strict mode (view commit)
  • fix the check on the init property of the variable declarator (view commit)
  • fix the defeating object mapping plugin (view commit)

v1.0.0

Choose a tag to compare

@lorenzoferre lorenzoferre released this 20 Sep 17:28
ec08646

Changelog

v1.0.0

Note

Below is a detailed description of the most relevant new features

At the beginning, all the variables are stored within the context. This way, it is possible to evaluate the update expression, even if they do not contain only constant values. Here's an example:

var a = 5;
a += 1;
console.log(a);

The result:

console.log(6);

It is also possible to evaluate some jsfuck expressions, like:

console.log([+!+[]]+[+[]]);

The result:

console.log("10");

The function's results are evaluated if it is within the context and if the arguments in the call expression contain only literal node types. Here’s an example:

function add(a, b) {
    return a + b;
}
console.log(add(1,1));

The result:

console.log(2);

The changed and setChanged variables are only used in the remove-dead-code plugin because it's possible that a function calls another function, but the first one is not called by anything, meaning the second one is also not called. This means the deobfuscator should run more than once. On the other hand, the other plugins no longer use the changed and setChanged variables for optimization purposes

v1.0.2-beta

Choose a tag to compare

@lorenzoferre lorenzoferre released this 01 Aug 19:58

Changelog

v1.0.2-beta

v1.0.0-beta

Choose a tag to compare

@lorenzoferre lorenzoferre released this 15 Oct 15:25
ec75af3

The structure of the project has changed. Babel plugins are now used.
Furthermore the documentation is now available

v1.0.0-alpha

v1.0.0-alpha Pre-release
Pre-release

Choose a tag to compare

@lorenzoferre lorenzoferre released this 19 Aug 19:05

this release allows you to:

  • rename all the variables with the same name in different scopes for better reading of the obfuscated code
  • propagate all constant values
  • evaluation, when possible, of binary expressions, unary expressions, logical expressions and call expressions
  • defeating array mapping
  • transform brackets notation with dots notation
  • evaluation of conditional statement when the test is always truthy or falsy
  • replace outermost iife with the body inside it