# JStillery JavaScript 部分求值反混淆工具

> Minded Security 的 JavaScript 反混淆工具，由 Stefano Di Paola 于 2015 年从 esdeobfuscate 分支而来，在 esprima 语法树上通过部分求值简化脚本。它会折叠常量和字符串表达式，经由变量和纯函数调用传播已知值，对内置 String、Array、Number 方法以及 atob/btoa 的调用求值，并把传给 eval 的字符串参数重新解析为代码。它可作为命令行工具处理文件或标准输入，也可作为带网页界面和 REST 接口的 Express 服务运行，或作为经 browserify 打包的库使用。

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

## 使用条件与局限

- master 分支最新提交为 2019-04-22，仓库没有发布版本或标签。README 链接的 2015 年 Minded Security 博客文章称，JStillery 是一款内部工具，用途之一是分析 JavaScript 恶意软件样本、对脚本做规范化以便分类。README 还链接了托管在 mindedsecurity.github.io/jstillery 的在线 REPL。
- 需要 Node.js 并执行 npm install；package.json 未声明 Node.js 版本，esprima、escodegen 和 esmangle 也未固定版本，且仓库没有锁文件，因此每次安装都会取它们的最新版本。命令行工具会输出原始代码和反混淆后的代码。npm run build_server 会复制网页界面并用 browserify 打包库，随后 npm run start_server 在 3001 端口提供网页界面和 /deobfuscate 接口；server_config.json 默认允许任意来源跨域访问。
- 部分求值默认开启（只有把 USE_PARTIAL 环境变量设为空字符串时才会关闭），会把输入中选定的表达式交给 Node 的 vm.runInNewContext 执行。Node 文档说明 vm 模块不是安全机制，因此应在隔离环境中分析不可信样本。
- JStillery 早于较新反混淆工具，例如 webcrack、javascript-deobfuscator 和 Obfuscator.io Deobfuscator；其文档未提及解包打包文件、解码字符串数组或还原控制流平坦化。tests/ 中的 mocha 测试把 JSFuck、aaencode、jjencode 和 Dean Edwards packer 等样本的输出与保存的预期结果比对，其中部分预期结果仍只是部分简化。
- LICENSE 和 README 均声明 GPL-3.0，而两个 package.json 文件都声明 ISC；src/jstiller.js 保留了 esdeobfuscate 的 BSD 式许可声明。网页界面内置了 jQuery、Bootstrap、CodeMirror、Font Awesome 和 js-beautify。

## 一手来源

1. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/README.md>
2. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/package.json>
3. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/jstillery_cli.js>
4. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/src/jstiller.js>
5. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/server/server.js>
6. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/server/server_config.json>
7. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/tests/tests.js>
8. <https://github.com/mindedsecurity/JStillery/tree/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/tests/tests_OK>
9. <https://github.com/mindedsecurity/JStillery/blob/512e9af2a54eb4592bf6fa6ac8483ceeb5726b03/LICENSE>
10. <https://blog.mindedsecurity.com/2015/10/advanced-js-deobfuscation-via-ast-and.html>
11. <https://nodejs.org/api/vm.html>

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

- [box.js 恶意 JavaScript 分析工具](https://awesomerea.org/zh/resources/box-js/index.md) · 工具
- [breakinggood 网站采集与重建工具](https://awesomerea.org/zh/resources/breakinggood/index.md) · 工具
- [Facebook BitMap Codec 参数编解码工具](https://awesomerea.org/zh/resources/facebookcodec/index.md) · 工具
- [DevLens Ultra 网页组件分析扩展](https://awesomerea.org/zh/resources/devlens-ultra/index.md) · 工具
- [AppThreat wasm-tools WebAssembly 解析与反汇编工具](https://awesomerea.org/zh/resources/appthreat-wasm-tools/index.md) · 工具
- [web-crawler ReverseAgent 网站 JavaScript 逆向智能体](https://awesomerea.org/zh/resources/web-crawler-reverse-agent/index.md) · 工具

## 关于此条目

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