Skip to content

TypeError: unknown file: Cannot read properties of null (reading 'tokens') #79

@devnoname120

Description

@devnoname120

Minimal reproduction case:

script.js:

var i = 1;
for (;;) {
  switch (i) {
    case 1:
      if (true) {
        i = 1;
      }
  }
  break
}

deobfuscate.mjs:

import deobfuscate from "javascript-deob";
import fs from "fs";

const path = "/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/script.js";
const code = fs.readFileSync(path, "utf-8");
const deobfuscatedCode = deobfuscate(code)
console.log(deobfuscatedCode)
> node deobfuscate.mjs

/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/generator/lib/index.js:106
  const printer = new _printer.default(format, map, ast.tokens, typeof code === "string" ? code : null);
                                                        ^

TypeError: unknown file: Cannot read properties of null (reading 'tokens')
    at generate (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/generator/lib/index.js:106:57)
    at PluginPass.enter (file:///private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/javascript-deob/src/techniques/dynamics/control-flow-unflattening.js:81:49)
    at newFn (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/visitors.js:172:14)
    at NodePath._call (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/path/context.js:49:20)
    at NodePath.call (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/path/context.js:39:18)
    at NodePath.visit (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/path/context.js:88:31)
    at TraversalContext.visitQueue (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:90:16)
    at TraversalContext.visitMultiple (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:62:17)
    at TraversalContext.visit (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:111:19)
    at traverseNode (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/traverse-node.js:22:17)
    at NodePath.visit (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/path/context.js:94:52)
    at TraversalContext.visitQueue (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:90:16)
    at TraversalContext.visitSingle (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:66:19)
    at TraversalContext.visit (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/context.js:113:19)
    at traverseNode (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/traverse-node.js:22:17)
    at traverse (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/traverse/lib/index.js:53:34)
    at transformFile (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/core/lib/transformation/index.js:80:31)
    at transformFile.next (<anonymous>)
    at run (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/core/lib/transformation/index.js:25:12)
    at run.next (<anonymous>)
    at transform (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/core/lib/transform.js:22:33)
    at transform.next (<anonymous>)
    at evaluateSync (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/gensync/index.js:251:28)
    at sync (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/gensync/index.js:89:14)
    at stopHiding - secret - don't use this - v1 (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/core/lib/errors/rewrite-stack-trace.js:47:12)
    at transform (/private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/@babel/core/lib/transform.js:36:80)
    at deobfuscate (file:///private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/node_modules/javascript-deob/src/deobfuscator.js:21:13)
    at file:///private/var/folders/ws/j7hn08fd2w17_q68394mdslr0000gn/T/tmp.nfpgs5x1xR/deobfuscate.mjs:6:26
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:122:5) {
  code: 'BABEL_TRANSFORM_ERROR'
}

Node.js v20.18.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions