美文网首页
Babel - AST反混淆入门

Babel - AST反混淆入门

作者: 会爬虫的小蟒蛇 | 来源:发表于2022-08-12 18:30 被阅读0次

安装

npm init -y
npm install --save-dev @babel/core @babel/cli

如何出现安装报错,可以尝试将npm切换到v14.0.0版本

测试是否安装成功

// 创建 babelTest.js 文件

// 引入 babel 核心库
var babel = require("@babel/core")

// 需要转换的 js 代码
var code = "var a = 1"

// 转换
// 第一个参数是需要转换的js代码  第二个参数是转换配置 参考插件文档
var result = babel.transform(code, {ast: true});
console.log(result.ast.program.body);

// node .\babelTest.js 运行js文件

Ast替换

// 创建 read.js
var a = 1;
// 创建 run.js 

// 将JS源码转换成语法树
var parser = require("@babel/parser");
// 为parser提供模板引擎
var template = require("@babel/template").default;
// 遍历AST
var traverse = require("@babel/traverse").default;
// 操作节点,比如判断节点类型,生成新的节点等
var t = require("@babel/types");
// 将语法树转换为源代码
var generator = require("@babel/generator").default;

// 操作文件 引入fs(file流)
var fs = require("fs");
// 读入待处理文件
var code = fs.readFileSync("./read.js", {
    encoding: "utf-8"
});
// 转换为 ast
var ast = parser.parse(code);
// 需要遍历的类型
var traverses = {
    // 参考官方文档的 types
    VariableDeclarator(path){
        path.node.init = t.stringLiteral("->> Str")
    }
}
traverse(ast, traverses)
var gcode = generator(ast)
console.log(gcode)

// node .\run.js 运行run.js

相关文章

  • babel插件入门-AST

    目录 Babel简介 Babel运行原理 AST解析 AST转换 写一个Babel插件 Babel简介 Babel...

  • AST、Babel、依赖

    babel 与 AST 先从Babel 说起 babel 的原理1、parse:把代码 code 变成 AST2、...

  • 一个bebel插件

    Babel它的原理,简单点说: Babel解析成AST,然后插件更改AST,最后由Babel输出代码

  • AST反混淆实战(一)

    AST简介 抽象语法树(Abstract Syntax Tree,AST),或简称语法树(Syntax tree)...

  • 【Webpack】AST、babel、依赖

    babel babel的原理 1、parse:把代码变成AST2、traverse:遍历AST进行修改;3、gen...

  • vue3原理

    AST AST:抽象语法树,Abstract Syntax Tree。TypeScript、babel、webpa...

  • babel 与 AST

    babel原理 parse把代码code 变成 ast traverse 遍历ast 进行修改 generate ...

  • AST、Babel、依赖

    Babel babel 的原理 parse: 把代码 code 变成 ASTtraverse: 遍历 AST 进行...

  • babel 核心

    1.babel/core babel/core的作用 = babel/parser(词法分析+语法分析 = AST...

  • 深入webpack之babel 与 AST

    babel的原理 parse:把代码code变成AST traverse:遍历AST进行修改 generate:把...

网友评论

      本文标题:Babel - AST反混淆入门

      本文链接:https://www.haomeiwen.com/subject/jqgqgrtx.html