85 lines
2.4 KiB
JavaScript
85 lines
2.4 KiB
JavaScript
|
|
||
|
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);
|
||
|
}
|
||
|
}
|