# ast_palyground **Repository Path**: longmo666/ast_palyground ## Basic Information - **Project Name**: ast_palyground - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-28 - **Last Updated**: 2024-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AST 反混淆笔记 https://astexplorer.net/ ## 安装 @babel/core ```shell npm i @babel/core -D ``` ## 基础模板 ```js const fs = require("fs"); // 读写文件 const {parse} = require("@babel/parser"); // 解析js const t = require("@babel/types"); // 判断节点类型,生成新的节点 const traverse = require("@babel/traverse").default; // 遍历ast中的节点 const generator = require("@babel/generator").default; // 把AST代码转换成JS代码 let jscode = fs.readFileSync("./yuanrenxue/01.js", { encoding: "utf-8", }); // 读代码 let ast = parse(jscode); // 把代码转成Ast let visitor = { //转换代码 } traverse(ast, visitor); let {code} = generator(ast, opts = {jsescOption: {"minimal": true}}); console.log(code); fs.writeFile("decode.js", code, (error) => { }); ``` https://blog.csdn.net/Qiled/article/details/122662588?spm=1001.2014.3001.5502 https://blog.csdn.net/Qiled/article/details/132227687?spm=1001.2014.3001.5502