这里是 WebJS 逆向演示文章的正文。
一、 JavaScript 混淆背景#
现代 Web 应用的安全防护普遍依赖于前端混淆,例如常见的 Obfuscator 混淆。要分析其核心加密参数的生成逻辑,必须先剥离多层嵌套混淆。
二、 什么是 AST#
AST (Abstract Syntax Tree, 抽象语法树) 是源代码语法结构的一种抽象表示。在 Node.js 环境中,我们可以使用 Babel 提供的解析器、遍历器和生成器,安全高效地重构代码。
三、 自动化还原混淆实战#
3.1 字符串解密还原#
| |
3.2 控制流平坦化还原#
控制流平坦化通过 switch-case 结构打乱了原有的顺序执行逻辑,通过 AST 我们可以重构其基本的程序控制块(Basic Block)依赖。
四、 结论#
基于 AST 的静态解密,极大地提高了对高强度前端混淆代码的逆向分析效率,是现代 Web 爬虫和协议安全研究人员的必备技能。