# CASCADE：谷歌基于大语言模型的 JavaScript 反混淆器

> 利用 Gemini 定位 Obfuscator.IO 为字符串混淆插入的前置（prelude）函数，再在 JSIR 编译器中间表示上执行常量传播与内联，以确定性方式还原字符串字面量和 API 名称。

- 作者：Shan Jiang; Pranoy Kovuri; David Tao; Zhixun Tan
- 原标题：CASCADE: LLM-powered JavaScript Deobfuscator at Google
- 发表载体：ICSE-SEIP 2026
- 发表状态：会议论文
- 出版／提交日期：2026 年 4 月 12 日
- 日期依据：采用 ACM 在 Crossref 登记的印刷出版日期，与 ICSE 2026 开幕日期一致；在线出版日期在元数据说明中单独记录。
- arXiv 首次提交：2025 年 7 月 23 日
- arXiv：2507.17691
- 已复核的 arXiv 版本：v2
- DOI：10.1145/3786583.3786873
- 来源复核于：2026-10-17
- 收录于：2026-10-17
- 原始论文：<https://doi.org/10.1145/3786583.3786873>
- PDF：<https://arxiv.org/pdf/2507.17691v2>
- 代码：<https://github.com/google/jsir>
- BibTeX：<https://awesomerea.org/papers/citations/paper-cascade.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-cascade/>
- 记录 JSON：<https://awesomerea.org/papers/paper-cascade/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-cascade/index.md)

## 研究范围与局限

该方法针对 Obfuscator.IO 的字符串混淆；控制流平坦化、其他混淆器及基于智能体的设计留待后续工作。评测以 Obfuscator.IO 的四种预设配置混淆 ETH 150k JavaScript 数据集中的 3,000 个程序，衡量前置函数识别、还原的字面量数量和运行时间，而非功能等价性。生产部署及扫描规模均为作者自述，生产环境的预筛选依赖一条未公开的 YARA 规则。

## 与本合集的关联

展示了将 LLM 限定于定位混淆辅助函数、由编译器中间表示完成改写的做法，可作为网站反混淆的实用模式。

## 发表与复核说明

ACM 在 Crossref 登记的元数据记载印刷出版于 2026-04-12，在线出版于 2026-07-11，页码为 292–302。出版方标题写作“LLM-powered”，arXiv 记录则大写为“Powered”。审阅文本为带有 ICSE-SEIP '26 页眉的 arXiv v2。论文称其提示词模板和 JSIR 已在 google/jsir 开源。固定提交中该 Apache-2.0 仓库包含 JSIR 及前置函数提取、动态常量传播等代码，但未发现提示词模板、Gemini 流程或评测集文件；论文在图 5 中给出了前置函数识别提示词，并将开源 CASCADE 本身列为后续工作。

## 一手来源

1. <https://doi.org/10.1145/3786583.3786873>
2. <https://api.crossref.org/works/10.1145/3786583.3786873>
3. <https://arxiv.org/abs/2507.17691>
4. <https://github.com/google/jsir/blob/3ef1529ee4ecaa97f2891125b8d01ba2d0a75c3e/README.md>
5. <https://github.com/google/jsir/blob/3ef1529ee4ecaa97f2891125b8d01ba2d0a75c3e/LICENSE>
6. <https://github.com/google/jsir/blob/3ef1529ee4ecaa97f2891125b8d01ba2d0a75c3e/maldoca/js/ast/transforms/extract_prelude/pass.h>
7. <https://github.com/google/jsir/blob/3ef1529ee4ecaa97f2891125b8d01ba2d0a75c3e/maldoca/js/ir/analyses/dynamic_constant_propagation/dynamic_prelude.h>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
