相关文献
1.sml2h3/ast_tools: ast基础框架-基于babel 2.AST基础知识:环境的搭建与babel库的安装 3.某酷ckey签名生成算法系列文章
反混淆demo初体验
首先使用WebStorm从github项目上拉取项目到本地,项目地址为相关文献中的第一条。

在使用方式中可以看到,需要先安装nodejs,以及一些依赖,然后就可以运行测试文件main.js。本机已经按照过nodejs了,就不再安装了,还没有安装的小伙伴可以到nodejs官网 下载安装。
接着是安装依赖,去到下方Terminal窗口依次安装

npm install iconv-lite
npm install @babel/core

安装完成后,尝试运行main.js
 在运行过程中会打印一些控制流反混淆的信息
 大概10秒钟左右执行完成,并提示文件输出到【./demos/demo1/output.js】,打开文件查看
 可以看到控制流已经被还原,字符串也已经反混淆好了,简单的一步操作,将代码的可读性大幅增加。
源代码初步理解
以main.js作为入口文件
 其中的【common_fix.fix】是关键函数,把源代码得到输出代码,其中的【common_fix】是由【./pro/demo1_fix】中导入,继续查看demo1_fix.js
 整体逻辑非常清晰,一开始是官方函数,基本所有使用babel库的都是这样导入api,解析的反混淆的核心函数,这里一共有15个函数,每个函数都是各自专属的功能,最后是反混淆的主函数,表明了每个api的执行顺序。
这里的15个自写的api反混淆函数还没有时间详细研究,整个设计下来非常简洁,执行速度也非常快(对比我的要好几分钟),总结来说是非常值得学习的。
更多ast相关的文章欢迎加入我的星球一起学习

|