这两天看了什么是控制流平坦化,又研究了下ast语法数,如何把混淆乱序后的代码恢复之前的样子。
知识点:1.js包为 recast
2.Recast除了parse/print/builder以外,
还有三项主要功能: run: 通过命令行读取js文件,并转化成ast以供处理。
tnt(recast.types.namedTypes): 通过assert()和check(),可以验证ast对象的类型。
visit: 遍历ast树,获取有效的AST对象并进行更改。
下面举例一个案例:
通过 https