AST基础知识:环境的搭建与babel库的安装

本文环境为win10系统,兼容各win系统(只需区分32位及64位操作系统),linux环境请自行下载测试。

一.安装nodejs

安装地址:

https://nodejs.org/zh-cn/download/

打开后,下载长期支持版,然后傻瓜式安装即可。

安装完成后,自动加入了环境变量,在cmd模式下输入 node,查看版本:

出现这个,即表示安装成功。

二.安装babel库


1.什么是Babel?

根据官网介绍,它是一个JavaScript 编译器,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

对爬虫工程师来说,没有必要那么深入的去了解Babel库的边边角角。只需要去学习如何将复杂难以阅读的代码 改造 成简单易懂的代码,即通过js代码改造js代码。

2.如何安装Babel库?

经过多次多个win系统的采坑后,这里 强烈建议不要全局安装,直接安装到某个目录下即可,安装命令:

npm install @babel/core --save-dev

安装成功示意图:

我们可以 导入某个库,看看是否可以正常调用:

在导入 @babel/parser 库后没有报错,那说明可以正常使用babel库了。

三.学习babel库

  1. JavaScript源代码转AST结构,@babel/parser,代码路径:

    node_modules\@babel\parser\lib
    

    在 node_modules\@babel\parser\bin\babel-parser.js 该文件中有一段打印AST的代码,如下:

    var filename = process.argv[2];
    if (!filename) {
      console.error("no filename specified");
    } else {
      var file = fs.readFileSync(filename, "utf8");
      var ast = parser.parse(file);
    
    
      console.log(JSON.stringify(ast, null, "  "));
    }
    
  2. AST结构转JavaScript源代码,@babel/generator,代码路径:

    node_modules\@babel\generator\lib\generators
    
  3. 遍历 AST结构 的相关api,@babel/traverse,代码路径:

    node_modules\@babel\traverse\lib
    

    该路径下的 path 和scope 子文件夹是学习的重点。

  4. 构建新的节点,@babel/types,代码路径:

    node_modules\@babel\types\lib
    

解混淆能用到的api,基本就在这四个目录里面了,建议直接从源代码开始学习。

当然也有很多是不需要弄懂的代码,就看自己的时间了。


说明:本文是 利用AST解混淆先导知识:概念相关 这篇文章的简化版,旨在给星友们一个更愉悦的阅读方式。请勿乱喷。

欢迎关注本人微信公众号,谢谢!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值