**课程标题:反爬虫 AST 混淆 JavaScript 与还原实战**

在当下激烈的数据竞争环境中,JavaScript 代码的安全防护与逆向分析已成为攻防双方博弈的核心战场。对于致力于提升爬虫对抗能力或深入理解前端安全机制的学习者而言,掌握 AST(抽象语法树)层面的混淆与还原技术,是突破传统字符串替换、变量重命名等浅层保护的关键一步。本课程《反爬虫 AST 混淆 JavaScript 与还原实战》正是为此而生,旨在帮助学员从底层原理出发,构建起完整的前端代码安全认知体系。

课程首先从基础环境配置入手,确保学员能够搭建起用于代码分析与还原的实验环境。随后,课程深入剖析 JavaScript 代码安全防护的底层逻辑,重点讲解对象属性的多种访问方式,这是理解后续复杂混淆技术的前提。在此基础上,课程系统性地拆解了六种常见的常量混淆原理:包括十六进制字符串表示、Unicode 转义序列、ASCII 码转换、字符串常量加密以及数值常量加密等。通过理论讲解与案例演示相结合的方式,学员将清晰看到攻击者如何通过改变数据的表层形态来隐藏敏感信息,从而为后续的还原工作奠定坚实的理论基础。

相较于传统的“黑盒”逆向,本课程引入了 AST 这一更专业、更高效的分析工具。AST 能够将源代码转化为计算机可理解的树状结构,使得混淆逻辑变得可视化、可操作。课程不仅停留在“知”,更注重“行”。在实战环节,学员将亲手操作,针对不同类型的混淆代码进行去混淆处理,学习如何编写脚本自动还原被加密或编码的常量,以及如何识别并消除死代码与控制流平坦化带来的干扰。这种从原理到实践的全链路训练,能够帮助学员真正掌握应对高级反爬虫策略的能力。

无论您是希望提升反爬能力的开发者,还是希望加强前端代码保护的安全工程师,亦或是准备应对高级逆向测试的安全研究人员,这门课程都提供了极具价值的知识储备。它不仅是技术的传授,更是思维方式的转变——从表面特征匹配转向结构本质的理解。通过本课程的学习,您将能够从容应对各种复杂的 JS 混淆场景,在攻防博弈中占据主动。让我们一起深入 AST 的世界,揭开 JavaScript 混淆代码的神秘面纱,掌握数据安全的主动权。

课程目录

1-1 [课程介绍与环境配置] 01.课程介绍与案例演示 (10:03)
1-2 [课程介绍与环境配置] 02.环境配置 (07:11)
2-1 [JavaScript代码安全防护原理] 03.对象属性的访问方式 (12:10)
2-2 [JavaScript代码安全防护原理] 04.常量混淆原理(十六进制字符串) (04:01)
2-3 [JavaScript代码安全防护原理] 05.常量混淆原理(unicode字符串) (07:22)
2-4 [JavaScript代码安全防护原理] 06.常量混淆原理(字符串ASCII码混淆) (11:30)
2-5 [JavaScript代码安全防护原理] 07.常量混淆原理(字符串常量加密) (09:21)
2-6 [JavaScript代码安全防护原理] 08.常量混淆原理(数值常量加密) (05:04)
2-7 [JavaScript代码安全防护原理] 09.增加JS逆向工作量(数组混淆) (11:11)
2-8 [JavaScript代码安全防护原理] 10.增加JS逆向工作量(数组乱序) (08:10)
2-9 [JavaScript代码安全防护原理] 11.增加JS逆向工作量(花指令) (08:18)
2-10 [JavaScript代码安全防护原理] 12.增加JS逆向工作量(jsfuck) (14:51)
2-11 [JavaScript代码安全防护原理] 13.代码执行流程防护原理(流程平坦化) (16:47)
2-12 [JavaScript代码安全防护原理] 14.代码执行流程防护原理(逗号表达式混淆1) (14:28)
2-13 [JavaScript代码安全防护原理] 15.代码执行流程防护原理(逗号表达式混淆2) (20:56)
2-14 [JavaScript代码安全防护原理] 16.其他代码防护方案(eval加密) (05:04)
2-15 [JavaScript代码安全防护原理] 17.其他代码防护方案(内存爆破) (10:00)
2-16 [JavaScript代码安全防护原理] 18.其他代码防护方案(检测代码是否格式化) (03:40)
3-1 [Babel的API详解] 19.AST的基本结构 (14:44)
3-2 [Babel的API详解] 20.代码的基本结构 (06:09)
3-3 [Babel的API详解] 21.parser与generator (11:13)
3-4 [Babel的API详解] 22.traverse与visitor (22:23)
3-5 [Babel的API详解] 23.types (15:59)
3-6 [Babel的API详解] 24.Path对象详解(Path与Node的区别) (06:28)
3-7 [Babel的API详解] 25.Path对象详解(Path中的方法) (26:33)
3-8 [Babel的API详解] 26.Path对象详解(父级Path) (06:32)
3-9 [Babel的API详解] 27.Path对象详解(同级Path) (27:07)
3-10 [Babel的API详解] 28.scope详解(作用域) (07:38)
3-11 [Babel的API详解] 29.scope详解(Binding) (20:37)
3-12 [Babel的API详解] 30.scope详解(referencePaths) (02:19)
3-13 [Babel的API详解] 31.scope详解(遍历作用域) (04:45)
3-14 [Babel的API详解] 32.scope详解(标识符重命名) (05:57)
3-15 [Babel的API详解] 33.scope详解(scope的其他方法) (05:43)
4-1 [AST自动化JavaScript防护方案] 34.改变对象属性的访问方式 (10:39)
4-2 [AST自动化JavaScript防护方案] 35.JS标准内置对象的处理 (05:22)
4-3 [AST自动化JavaScript防护方案] 36.实现数值常量加密 (07:27)
4-4 [AST自动化JavaScript防护方案] 37.实现字符串常量加密 (07:39)
4-5 [AST自动化JavaScript防护方案] 38.实现数组混淆 (16:34)
4-6 [AST自动化JavaScript防护方案] 39.实现数组乱序 (08:48)
4-7 [AST自动化JavaScript防护方案] 40.实现十六进制与unicode字符串 (05:50)
4-8 [AST自动化JavaScript防护方案] 41.实现标识符混淆 (21:20)
4-9 [AST自动化JavaScript防护方案] 42.标识符的随机生成 (09:32)
4-10 [AST自动化JavaScript防护方案] 43.二项式转函数花指令 (15:52)
4-11 [AST自动化JavaScript防护方案] 44.代码的逐行加密 (11:40)
4-12 [AST自动化JavaScript防护方案] 45.代码的逐行ASCII码混淆 (09:57)
4-13 [AST自动化JavaScript防护方案] 46.完整的代码与处理后的效果 (08:53)
4-14 [AST自动化JavaScript防护方案] 47.实现流程平坦化混淆1 (21:41)
4-15 [AST自动化JavaScript防护方案] 48.实现流程平坦化混淆2 (22:02)
4-16 [AST自动化JavaScript防护方案] 49.实现逗号表达式混淆1 (14:06)
4-17 [AST自动化JavaScript防护方案] 50.实现逗号表达式混淆2 (17:38)
5-1 [AST还原JavaScript实战] 51.分析网站使用的混淆手段 (26:10)
5-2 [AST还原JavaScript实战] 52.还原代码中的常量 (16:40)
5-3 [AST还原JavaScript实战] 53.花指令剔除思路 (20:10)
5-4 [AST还原JavaScript实战] 54.字符串花指令的剔除 (15:30)
5-5 [AST还原JavaScript实战] 55.函数花指令的剔除 (17:39)
5-6 [AST还原JavaScript实战] 56.还原流程平坦化 (22:42)