# 从混淆到清晰：面向安全分析的综合性 JavaScript 反混淆工具

> JSimplifier 分三个阶段从混淆脚本中恢复可读的 JavaScript：预处理器规范化格式错误或混合编码的输入；反混淆器将基于 AST 的静态简化与在 Node.js vm 上下文中有选择地执行混淆调用点相结合，并把执行结果写回 AST；可选的人性化模块借鉴 HumanifyJS，利用大语言模型重命名标识符，再用 Prettier 格式化输出。作者将混淆技术归纳为四大类共 20 种，并构建了 MalJS（23,212 个恶意脚本）与 BenignJS（21,209 个脚本）数据集。作者报告 JSimplifier 能处理全部 44,421 个样本，并在 JsDeObsBench 中 1,296 个组合多种技术的样本上将 Halstead 长度降低 88.2%。

- 作者：Dongchao Zhou; Lingyun Ying; Huajun Chai; Dongbin Wang
- 原标题：From Obfuscated to Obvious: A Comprehensive JavaScript Deobfuscation Tool for Security Analysis
- 发表载体：NDSS 2026
- 发表状态：会议论文
- 出版／提交日期：2026 年（具体日期未核实）
- 日期依据：Internet Society 提交的 Crossref 元数据与 NDSS 官方论文标明出版年份为 2026。PDF 页脚标注研讨会于 2026 年 2 月 23–27 日举行；不根据会议举办日期推定更精确的出版日期。
- arXiv 首次提交：2025 年 12 月 16 日
- arXiv：2512.14070
- 已复核的 arXiv 版本：v1
- DOI：10.14722/ndss.2026.242198
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始论文：<https://www.ndss-symposium.org/ndss-paper/from-obfuscated-to-obvious-a-comprehensive-javascript-deobfuscation-tool-for-security-analysis/>
- PDF：<https://www.ndss-symposium.org/wp-content/uploads/2026-f2198-paper.pdf>
- 代码：<https://github.com/XingTuLab/JSIMPLIFIER>
- BibTeX：<https://awesomerea.org/papers/citations/paper-jsimplifier.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-jsimplifier/>
- 记录 JSON：<https://awesomerea.org/papers/paper-jsimplifier/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-jsimplifier/index.md)

## 研究范围与局限

论文标题性的“100% 正确”指 400 个样本（100 个 BenignJS、300 个 MalJS）经解析器与人工检查后的语法有效性；借助 Joern 控制流图／数据依赖图比较和人工复核判断的行为一致性，在 100 个样本中有 83 个成立。20 种技术的能力测试是把每种技术分别施加在同一段代表性代码上；仅靠静态与动态阶段可处理其中 19 种，标识符重命名需要大语言模型阶段。可读性提升来自四个大语言模型（Claude 3.7 Sonnet、Gemini 2.5 Pro、DeepSeek-R1 与 GPT-o3）对 60 组 MalJS 样本按 0–10 分打分；另对 100 个样本的 GPT-4o-mini 重命名进行检查，发现 12% 的名称属于幻觉，用户研究仅有 9 名参与者。熵比较未包含大语言模型阶段。MalJS 是与一家安全公司合作收集的，BenignJS 则混合了 Tranco 热门网站脚本和作者自行混淆的 2,000 个干净样本。作者说明该工具不处理加密打包、自定义解释器和依赖时间的解密，ES6+ 语法可能被降级，基于 vm 的执行也存在逃逸风险。输出是可读的 JavaScript，而非重建的网站。

## 与本合集的关联

补充一款开源的端到端 JavaScript 反混淆工具及大规模真实评测数据，与 JsDeObsBench 基准和基于大语言模型的反混淆研究共同服务于恢复可读的客户端代码。

## 发表与复核说明

四位作者的顺序以 PDF、NDSS 论文页面与 Crossref 为准。PDF 页脚给出 ISBN 979-8-9919276-8-0 及 DOI；Crossref 未列出页码，本条目未核实页码范围。arXiv v1（2025-12-16）的元数据带有同一 DOI，但没有发表场所注释；本次审阅的是 NDSS 最终版 PDF。论文链接 XingTuLab/JSIMPLIFIER 与 Zenodo 产物 10.5281/zenodo.17531662，后者 DOI 标识的是产物而非论文。在所审阅的 2025-12-17 提交中，仓库 LICENSE 为 GPL-3.0，package.json 却仍声明 MIT；Zenodo 记录标注 GPL-3.0-or-later。命令行工具需要 Node.js 20 或更高版本，大语言模型重命名需要用户自备 OpenAI 或 Gemini API 密钥；--model=none 仅运行 AST 阶段。据产物附录，约 3 GB 的 Zenodo 压缩包包含 MalJS 恶意样本。论文说明其重命名方法借鉴 HumanifyJS。

## 一手来源

1. <https://www.ndss-symposium.org/ndss-paper/from-obfuscated-to-obvious-a-comprehensive-javascript-deobfuscation-tool-for-security-analysis/>
2. <https://www.ndss-symposium.org/wp-content/uploads/2026-f2198-paper.pdf>
3. <https://doi.org/10.14722/ndss.2026.242198>
4. <https://api.crossref.org/works/10.14722/ndss.2026.242198>
5. <https://arxiv.org/abs/2512.14070>
6. <https://github.com/XingTuLab/JSIMPLIFIER/blob/eaa72ae63758957ac95b2f5e3391fefb96827987/README.md>
7. <https://github.com/XingTuLab/JSIMPLIFIER/blob/eaa72ae63758957ac95b2f5e3391fefb96827987/LICENSE>
8. <https://github.com/XingTuLab/JSIMPLIFIER/blob/eaa72ae63758957ac95b2f5e3391fefb96827987/package.json>
9. <https://zenodo.org/records/17531662>

## 关于此条目

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