relative / synchrony

javascript-obfuscator cleaner & deobfuscator
https://deobfuscate.relative.im/
GNU General Public License v3.0
840 stars 108 forks source link

TypeError: Cannot read properties of undefined (reading 'toString') #124

Closed fastmutex closed 1 year ago

fastmutex commented 1 year ago

Encountered when trying to deobfuscate this snippet:

function _0x2211(_0x308fc8, _0x3eaf2c) {
    const _0xe52b9c = _0x2c35();
    return ((_0x2211 = function(_0x17fc38, _0x5358b8) {
        _0x17fc38 = _0x17fc38 - 0x15f;
        let _0x233d6e = _0xe52b9c[_0x17fc38];
        return _0x233d6e;
    }), _0x2211(_0x308fc8, _0x3eaf2c));
}

function _0x2c35() {
    const _0x10b05e = ['__dyn', 'light', 'version']
    _0x2c35 = function() {
        return _0x10b05e;
    };
    return _0x2c35();
}

_0x2211(1,2)

The error:

        result = reg.toString();
                     ^

TypeError: Cannot read properties of undefined (reading 'toString')
    at generateRegExp (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:339:22)
    at CodeGenerator.Literal (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2456:20)
    at CodeGenerator.generateExpression (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2585:28)
    at CodeGenerator.ExpressionStatement (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:1349:28)
    at CodeGenerator.generateStatement (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2598:33)
    at CodeGenerator.Program (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:1738:43)
    at CodeGenerator.generateStatement (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2598:33)
    at generateInternal (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2619:28)
    at Object.generate (/Users/testuser/homebrew/lib/node_modules/deobfuscator/node_modules/@javascript-obfuscator/escodegen/escodegen.js:2687:18)
    at ke.<anonymous> (/Users/testuser/homebrew/lib/node_modules/deobfuscator/dist/index.js:28:62578)

Node.js v20.5.0

The problematic Node:


Node {
  type: 'Literal',
  start: 490,
  end: 502,
  range: [ 490, 502 ],
  callee: Node {
    type: 'Identifier',
    start: 490,
    end: 497,
    range: [ 490, 497 ],
    name: '_0x2211'
  },
  arguments: [
    Node {
      type: 'Literal',
      start: 498,
      end: 499,
      range: [Array],
      value: 1,
      raw: '1'
    },
    Node {
      type: 'Literal',
      start: 500,
      end: 501,
      range: [Array],
      value: 2,
      raw: '2'
    }
  ],
  optional: false,
  value: undefined
}```