# ReverseJS AST 反混淆配套资料

> ReverseJS 博客 2022 年系列文章的配套代码，该系列讲解如何借助 Babel 操作抽象语法树来反混淆 JavaScript。每个目录都包含一个小型混淆样例、对应的反混淆脚本及其输出，主题涵盖字符串隐藏（转义序列、字符串拼接、字符串数组和字符串加密）、常量折叠（含 JSFuck 风格代码）、常量变量替换、方括号属性访问改为点号访问、死代码删除、代理函数以及逗号序列表达式。README 将其定位为简短的学习示例，而非可用于生产的反混淆工具。

- 类型：学习资源
- 目标：网站
- 类别：学习资源
- 关联：学习资源
- 来源复核于：2026-10-27
- 收录于：2026-11-03
- 原始资源：<https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials>
- 一手来源：<https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/reversejs-ast-deobfuscation-materials/>
- 记录 JSON：<https://awesomerea.org/resources/reversejs-ast-deobfuscation-materials/record.json>
- 英文版：[English](https://awesomerea.org/resources/reversejs-ast-deobfuscation-materials/index.md)

## 使用条件与局限

- 审阅对象为 2023-10-20 的 master 提交，其最后一项改动是将 @babel/traverse 升级到 7.23.2。博客列出该系列在 2022 年 5 月和 6 月发表的七篇文章，而代理函数（Proxy Functions）和序列表达式（Sequence Expressions）等目录没有对应文章；README 提醒，未在博客发表的代码已过时且属实验性质，可能不准确或有缺陷，作者大概率不会再更新，不建议用于生产环境的反混淆工具。
- 需要 Node.js 并执行 npm install：package.json 声明 @babel/core 和 js-beautify，锁文件解析出的 @babel/parser、@babel/traverse 和 @babel/generator 为 7.23.x。每个脚本需在其所在目录中用 node 对附带样例运行。String Encryption 示例还导入了 package.json 未列出的 chrome-remote-interface-extra。
- 样例都是作者自己编写的简短混淆代码，将这些技术用于其他代码时，需要分析者自备输入并自行核对结果。基于 VM 求值的代理函数示例和 String Encryption 示例会通过 Node 的 vm 模块执行样例中的代码，而 Node.js 文档明确说明该模块不是安全机制。作者后来的博客文章报告了 CVE-2023-45133，即 7.23.2 之前的 @babel/traverse 中存在任意代码执行漏洞；所审阅的锁文件已解析为 7.23.2。
- 仓库没有测试或 CI（npm test 脚本只是占位）；各样例旁附有预期输出。
- 采用 MIT 许可（见 LICENSE），但 package.json 仍保留 npm 默认的 ISC 字段。

## 一手来源

1. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/README.md>
2. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/package.json>
3. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/package-lock.json>
4. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/tree/37092955c2ad361364a2162149df9119045de3d0/String%20Concealing>
5. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/tree/37092955c2ad361364a2162149df9119045de3d0/Proxy%20Functions>
6. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/String%20Concealing/String%20Encryption/deobber.js>
7. <https://github.com/SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials/blob/37092955c2ad361364a2162149df9119045de3d0/LICENSE>
8. <https://steakenthusiast.github.io/2022/05/21/Deobfuscating-Javascript-via-AST-An-Introduction-to-Babel/>
9. <https://steakenthusiast.github.io/2023/10/11/CVE-2023-45133-Finding-an-Arbitrary-Code-Execution-Vulnerability-In-Babel/>
10. <https://github.com/babel/babel/security/advisories/GHSA-67hx-6x53-jw92>
11. <https://nodejs.org/api/vm.html>

## 同分区更多条目：文档与学习资源

- [MCP 逆向数据集（mrexodia）](https://awesomerea.org/zh/resources/mcp-reversing-dataset/index.md) · 学习资源
- [ICSim 汽车仪表盘 CAN 总线模拟器](https://awesomerea.org/zh/resources/icsim/index.md) · 学习资源
- [CNNPRE：基于 CNN 的协议逆向方法（IEEE Access 2023）](https://awesomerea.org/zh/resources/cnnpre/index.md) · 研究
- [RPISEC 恶意软件分析课程（CSCI 4976）](https://awesomerea.org/zh/resources/rpisec-malware-analysis-course/index.md) · 学习资源
- [Corkami 文件格式图解海报集](https://awesomerea.org/zh/resources/corkami-pics/index.md) · 学习资源
- [《Practical Malware Analysis》恶意软件分析实战指南](https://awesomerea.org/zh/resources/practical-malware-analysis/index.md) · 学习资源

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
