const parser = require("@babel/parser"); const generate = require("@babel/generator").default const traverse = require("@babel/traverse").default const types = require("@babel/types") const fs = require("fs"); const write = true var code = ` var create_object = function (_garp_9ec95, _garp_4643e, _garp_09c0, _garp_76920) { return { _garp_420c: _garp_9ec95, _garp_a70b5: _garp_4643e, _garp_e1c2: _garp_09c0, _garp_bd543: _garp_76920 }; }; var _garp_cd355 = function (_garp_76920) { return _garp_76920._garp_bd543 ? _garp_76920._garp_a70b5[_garp_76920._garp_e1c2] : _garp_76920._garp_420c; }; var Ba2ab = function (_garp_2ac4c, _garp_c46a) { if (_garp_c46a.hasOwnProperty(_garp_2ac4c)) { return create_object(0, _garp_c46a, _garp_2ac4c, 1); } var _garp_5768; if (_garp_c46a._garp_6489) { _garp_5768 = Ba2ab(_garp_2ac4c, _garp_c46a._garp_6489); if (_garp_5768) { return _garp_5768; } } if (_garp_c46a._garp_9b66c) { _garp_5768 = Ba2ab(_garp_2ac4c, _garp_c46a._garp_9b66c); if (_garp_5768) { return _garp_5768; } } return false; }; ` code = fs.readFileSync("XHS.js", {encoding: "utf-8"}); const ast = parser.parse(code) const visitor = { CallExpression(path) { if (path.node.callee.name === "_garp_cd355") { const args = path.node.arguments; const objExpr = types.objectExpression([ types.objectProperty(types.identifier('_garp_420c'), args[0]), types.objectProperty(types.identifier('_garp_a70b5'), args[1]), types.objectProperty(types.identifier('_garp_e1c2'), args[2]), types.objectProperty(types.identifier('_garp_bd543'), args[3]) ]); path.replaceWith(objExpr); // const args = path.node.arguments; // const obj = args[1]; // const prop = args[0]; // const hasOwnPropertyCall = types.callExpression( // types.memberExpression(obj, types.identifier('hasOwnProperty')), // [prop] // ); // path.replaceWith(hasOwnPropertyCall); } } } traverse(ast, visitor) const result = generate(ast) code = result.code console.log(code) if (write) { try { fs.writeFileSync('XHS1.js', code, 'utf8'); console.log('File has been written'); } catch (err) { console.error(err); } }