Skip to content

Releases: relative/synchrony

v2.4.5

09 Nov 18:26
2.4.5
721cf5d
Compare
Choose a tag to compare

v2.4.4

17 Oct 17:02
2.4.4
3c6cbdb
Compare
Choose a tag to compare

v2.4.3

02 Oct 20:54
2.4.3
faddb67
Compare
Choose a tag to compare
  • fix lost nodes from desequence (6b1000f)

Full list of commits here:
2.4.2...2.4.3

v2.4.2

30 Mar 14:07
2.4.2
4a470f5
Compare
Choose a tag to compare

Full list of commits here:
2.4.1...2.4.2

v2.4.1

21 Dec 17:32
2.4.1
0313010
Compare
Choose a tag to compare
  • fix stringdecoder

Full list of commits here:
2.4.0...2.4.1

v2.4.0

24 Nov 17:31
2.4.0
4807892
Compare
Choose a tag to compare

new CLI options:

synchrony deobfuscate <file>

Deobfuscate a file

Positionals:
  file  File to deobfuscate (include extension)              [string] [required]

Options:
      --help                             Show help                     [boolean]
      --version                          Show version number           [boolean]
      --rename                           Rename symbols automatically
                                                      [boolean] [default: false]
      --ecma-version, --esversion, --es  Set ECMA version for AST parser (see
                                         acorn docs)[string] [default: "latest"]
  -c, --config                           Supply a custom deobfuscation config
                                         (see docs)                     [string]
  -o, --output                           Where to output deobfuscated file
                                                                        [string]
  -l, --loose                            Enable loose parsing
                                                      [boolean] [default: false]
      --sourceType, --type               Source type for file ('script' or
                                         'module')  [string] [default: "module"]

Example CLI config (JSON, however the CLI will require it, meaning you can use js files and module.exports = {/*config*/})

{
  "rename": true,
  "ecmaVersion": 14,
  "output": "./a.js",
  "loose": true,
  "sourceType": "module",
  "customTransformers": [
    ["Simplify", {}],
    ["jsc-controlflow", {}],
    ["Simplify", {}],

    ["jsc-calculator", {}],
    ["DeadCode", {}],
    ["Simplify", {}]
  ]
}

Full list of commits here:
2.3.0...2.4.0

v2.3.0

12 Mar 23:16
2.3.0
5591b6b
Compare
Choose a tag to compare

new CLI options:

synchrony deobfuscate 

Deobfuscate a file

Positionals:
  file  File to deobfuscate (include extension)              [string] [required]
Options:
  --help                       Show help                               [boolean]
  --version                    Show version number                     [boolean]
  --rename                     Rename symbols automatically
                                                      [boolean] [default: false]
  --ecma-version, --esversion  Set ECMA version for AST parser (see acorn docs)
                                                    [string] [default: "latest"]

rename symbols automatically if enabled
specify ecma version on command line

2.2.0...2.3.0

v2.2.0

11 Mar 19:43
2.2.0
e0606f1
Compare
Choose a tag to compare

major change

AST nodes require range property!!!, this means if you are using the API and have it deobfuscate AST you must have your parser emit range property on each node

remove dead variables (not read/wrote anywhere)
replace variables that are only read in functions (fixes terser's object unpacking to variable)
unpack arrays that start with a "null" element
demangle minified functions so that they match stringdecoder's required schemas

2.1.5...2.2.0

v2.1.5

06 Mar 20:45
2.1.5
af080df
Compare
Choose a tag to compare

fix control flow deflattening

Full Changelog: 2.1.4...2.1.5

v2.1.4

06 Mar 19:31
2.1.4
f1caa1b
Compare
Choose a tag to compare
  • fix variable reference finder in string decoder (will recurse references instead of looking at top level)
  • simplify conditionalexpressions
let x = true ? 'X' : 'Y'
// becomes
let x = 'X'
  • desequences in root Program node
  • Fix controlflow transformer
  • converts single statements if/while/for expressions into block statements
  • removes dead if/while statements (e.g. if(false), while(false))
  • decodes bare string arrays for kasada and old javascript-obfuscator scripts

2.1.3...2.1.4