# REstringer JavaScript 反混淆工具

> HUMAN Security 推出的 Node.js JavaScript 反混淆工具。它先识别混淆类型，针对 obfuscator.io、Caesar Plus 和基于数组的混淆模式运行相应处理器，再迭代执行 40 多个 AST 模块，重建字符串、求解表达式和函数调用并简化控制流；其中不安全模块会在沙箱中求值代码。可作为命令行工具或库使用。

- 类型：工具
- 目标：网站
- 类别：网站分析工具
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-11-01
- 原始资源：<https://github.com/HumanSecurity/restringer>
- 一手来源：<https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/restringer/>
- 记录 JSON：<https://awesomerea.org/resources/restringer/record.json>
- 英文版：[English](https://awesomerea.org/resources/restringer/index.md)

## 使用条件与局限

- 所审阅的 HumanSecurity main 提交（2025-12-07）即 v2.1.0 加上一处 README 修改，删去了已停用的 REstringer.tech 网页工具。作者现在其个人分支 ctrl-escp/restringer 中继续开发，npm 包也已将该分支列为其仓库：npm 2.2.0（2026-05-09）和 2.3.0（2026-08-30）均出自该分支；在 2.3.0 时，其 README 要求 Node.js 22+，将 isolated-vm 改为可选，并新增 Node、Deno 和 Bun 子进程沙箱，因此通过 npm 安装的代码比所审阅的源码更新。
- 所审阅的源码需要 Node.js 20+（推荐 22+），可作为全局命令行工具或模块安装。依赖 flast、obfuscation-detector、commander 以及 isolated-vm 5.0.4；后者是原生模块，CI 借助 Python 和 g++ 构建。结果输出到标准输出或 <input>-deob.js；-m 限制迭代次数，-c 删除无用节点，README 将其标为不安全。
- 输入为经过混淆的 JavaScript 文件或字符串。安全模块只变换 AST、不求值代码；不安全模块则在 isolated-vm 沙箱中用 eval() 求值部分输入，以求解表达式和函数调用。
- GitHub Actions 在 Node.js 20 和 22 上运行 npm test。除模块和处理器单元测试外，完整测试套件还会对 11 个随附的混淆样本（包括 obfuscator.io、JSFuck 和 Caesar Plus 脚本）进行反混淆，并与保存的预期输出逐一比对。
- 采用 MIT 许可，版权归 HUMAN Security（2025）；该分支另加了 Ben Baryo 的 2026 年版权行。仓库原为 PerimeterX/restringer，现已重定向到 HumanSecurity/restringer。

## 一手来源

1. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/README.md>
2. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/package.json>
3. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/src/processors/README.md>
4. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/.github/workflows/node.js.yml>
5. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/tests/samples.test.js>
6. <https://github.com/HumanSecurity/restringer/tree/d9eae6907e14581b7934940ee0407f505b7a212b/tests/resources>
7. <https://github.com/HumanSecurity/restringer/blob/d9eae6907e14581b7934940ee0407f505b7a212b/LICENSE>
8. <https://github.com/HumanSecurity/restringer/releases/tag/v2.1.0>
9. <https://github.com/ctrl-escp/restringer/blob/5fe8ac8d23723810fba170972c12b4433ffba111/README.md>
10. <https://github.com/ctrl-escp/restringer/blob/5fe8ac8d23723810fba170972c12b4433ffba111/package.json>
11. <https://registry.npmjs.org/restringer/2.2.0>
12. <https://registry.npmjs.org/restringer/2.3.0>

## 同分区更多条目：网站

- [CRX Viewer 浏览器扩展源码查看器](https://awesomerea.org/zh/resources/crxviewer/index.md) · 工具
- [har-to-openapi：从 HAR 抓包推断 OpenAPI 文档](https://awesomerea.org/zh/resources/har-to-openapi/index.md) · 工具
- [decode-js JavaScript 反混淆 AST 工具](https://awesomerea.org/zh/resources/decode-js/index.md) · 工具
- [javascript-deobfuscator Obfuscator.io 字符串还原网页工具（LostMyCode）](https://awesomerea.org/zh/resources/lostmycode-javascript-deobfuscator/index.md) · 工具
- [minusone 脚本去混淆引擎](https://awesomerea.org/zh/resources/minusone-script-deobfuscator/index.md) · 工具
- [JS-Deobfuscator（0x1Avram）Obfuscator.io 反混淆工具](https://awesomerea.org/zh/resources/0x1avram-js-deobfuscator/index.md) · 工具

## 关于此条目

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