工具
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。本次未对任何脚本进行反混淆。
关于此条目
- 类型
- 工具
- 类别
- 网站分析工具
- 关联
- 基础工具
- 目标
- 网站
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
- package.json GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
- src/config.ts GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
- src/modifications/renaming/variableRenamer.ts GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
- LICENSE GitHub · ben-sb/javascript-deobfuscator · 修订 4107a8a
- https://www.npmjs.com/package/js-deobfuscator/v/1.1.7