工具

JStillery JavaScript 部分求值反混淆工具

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

目标
网站
类别
网站分析工具
关联
基础工具
来源复核于

使用条件与局限

  • 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。所审来源未提及任何 AI 或 REA 用途,本条目也未对任何脚本进行反混淆。

关于此条目

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

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

一手来源

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

同分区更多条目:网站

网站分区全部 48 项资源