学习资源

ReverseJS AST 反混淆配套资料

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

目标
网站
类别
学习资源
关联
学习资源
来源复核于

使用条件与局限

  • 审阅对象为 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 字段。所审来源未确立与 REA 的关联。

关于此条目

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  2. package.json GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  3. package-lock.json GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  4. String%20Concealing GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  5. Proxy%20Functions GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  6. String%20Concealing/String%20Encryption/deobber.js GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  7. LICENSE GitHub · SteakEnthusiast/Supplementary-AST-Based-Deobfuscation-Materials · 修订 3709295
  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

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

文档与学习资源分区全部 61 项资源