吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 127|回复: 0
收起左侧

[学习记录] babel解混淆模板

[复制链接]
zhangzetong 发表于 2024-11-15 14:58


[JavaScript] 纯文本查看 复制代码
//babel库及文件模块导入
const fs = require('fs');
const path = require('path');
const parentDir = path.join(__dirname,);
const parser = require("@babel/parser");
const traverse = require("@babel/traverse").default;
const t = require("@babel/types");
const generator = require("@babel/generator").default;

let encode_file = `源码.js`
let decodeFile = `测试.js`
let jscode = fs.readFileSync(encode_file, { encoding: "utf-8" });
let ast = parser.parse(jscode);

/////////////////////////////////////////////////////////////////////////////////////////////////


//1.首先统一字符串和数字的编码类型
const simplifyLiteral = {
  NumericLiteral({ node }) {
    if (node.extra && /^0[obx]/i.test(node.extra.raw)) {
      node.extra = undefined;
    }
  },
  StringLiteral({ node }) {
    if (node.extra && /\\[ux]/gi.test(node.extra.raw)) {
      node.extra = undefined;
    }
  },
}
traverse(ast, simplifyLiteral);

////////////////////////////////////////////////////////////////////////////////////////////


console.timeEnd("处理完毕,耗时");
let { code } = generator(ast, opts = {
  "compact": false,  // 是否压缩代码
  "comments": false,  // 是否保留注释
  "jsescOption": { "minimal": false },  //Unicode转义
});

fs.writeFile(decodeFile, code, (err) => {
});

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 11:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表