工具

javascript-deobfuscator 通用 JavaScript 反混淆工具

通用的 JavaScript 反混淆工具,针对常见混淆手法,以 js-deobfuscator 之名发布在 npm 上,可作为库或命令行工具使用。它能展开字面量数组并替换对其的引用,移除简单代理函数、数组代理函数和算术代理函数,化简算术表达式和字符串拼接,删除死分支,把计算属性访问转为静态属性,重命名 _0xca830a 这类十六进制标识符,并美化输出代码。作者另提供在线版本,并单独维护一个针对 Obfuscator.io 输出的反混淆工具。

使用条件与局限

  • 审阅时的 npm 版本为 js-deobfuscator 1.1.7,发布于 2025-07-15;所审阅的 main 分支提交即为该版本号更新。仓库未发布 GitHub Release。这个 TypeScript 软件包使用 Shift 解析器和作者维护的 shift-codegen 分支来解析并重新生成代码;package.json 未声明 Node.js 版本范围。
  • 可在本地安装后作为模块导入,或全局安装后使用 js-deobfuscator 命令行工具:读取输入文件并写出输出文件,-m 用于解析 ES 模块。库的配置项可分别开关每种转换。在线版本位于 deobfuscate.io;本次只审阅了仓库。
  • 需自行提供要分析的 JavaScript。它处理 README 所列的通用混淆模式;对于 Obfuscator.io 的输出,README 建议改用作者专门的反混淆工具。十六进制标识符会被替换为从内置词表中选取的名称,并非恢复原名,因此输出仍需分析人员复核。
  • LICENSE 文件为 Apache-2.0,而 package.json 和 npm 元数据声明的是 ISC。本次未对任何脚本进行反混淆。

关于此条目

类型
工具
类别
网站分析工具
关联
基础工具
目标
网站

来源复核于

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

一手来源

  1. README.md GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
  2. package.json GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
  3. src/config.ts GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
  4. src/modifications/renaming/variableRenamer.ts GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
  5. LICENSE GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
  6. https://www.npmjs.com/package/js-deobfuscator/v/1.1.7