JavaScript反混淆工具

粘贴一段经过混淆处理的JavaScript代码(包含十六进制编码字符串、单字母变量名以及顶部的解码循环),该工具便会逐步解析其结构:转换转义字符串、将查找数组内联化、将变量重命名为可读的占位符、简化冗余包装结构并美化输出结果。该工具特别适用于分析从网页或Pastebin链接中截取的可疑代码片段。

如何解密JavaScript代码

  1. 1

    粘贴加密后的源代码

    经`javascript-obfuscator.io`格式工具压缩、打包或输出的文件。

  2. 2

    让解析器遍历它

    字符串数组被解码,数值序列被计算处理,并剪除无效代码分支。

  3. 3

    应用重命名

    单字母变量 `a`/`b`/`c` 将重命名为 `var1`、`var2` 等,这些为可读占位符,未必具有实际含义。

  4. 4

    美化

    进行代码标识、添加换行符,并输出可直接阅读并理解的代码。

解密工具所使用的反向处理技术

隐匿化 逆转
十六进制转义字符串字面量 \x48\x69 解码为 "Hi"
Unicode 转义标识符 \u006E\u0061\u006D\u0065 -> name
字符串数组 + 解码器函数 将数组内联处理,并在解析时调用解码器
数值常量折叠 0x1F3 + 5 -> 504
eval(...) 包装器 将内部代码提升至顶层
控制流扁平化(状态机) 检测分支条件,重建执行流程
无效代码/无用的三元条件判断 移除从未执行的分支
_0x1a2b3c() 样式名称 替换为递增的 var1var2

限制:该工具无法实现的功能

  • 恢复原始变量名称。当 userEmail 更名为 a 后,任何工具都无法反推其原名;系统将呈现可读的结构而非原始含义。
  • 解压自定义虚拟机程序。重量级商业混淆工具(如 JScrambler 或 Obfuscator.io 的企业级版本)会生成能够解析字节码的定制虚拟机;要破解这些工具需进行手动逆向工程。
  • 运行任意代码。 解混淆工具会静态评估纯表达式,不会获取远程资源、创建DOM元素或与网络通信。

典型用例

  • 安全研究:对通过电子邮件收到或由被攻破的 CDN 传播的可疑脚本进行深入分析。
  • 代码考古学:从仅存精简代码包的遗留代码中进行恢复。
  • 学习:深入理解教程级混淆技术在底层的实际运作机制。

安全与伦理

切勿在登录重要账户的浏览器标签页中运行不可信的JavaScript代码,此类代码可能读取Cookie、调用内部API并窃取用户状态信息。反混淆工具本身仅对源代码进行文本解析,不会执行您粘贴的实际代码。

仅可解密您有权分析的代码。反向工程许可软件在您的司法管辖区可能受到限制。

常见问题

不。一旦混淆工具将 userEmail 重命名为 _0x1a2b3c,原始名称即被丢失。解混淆工具可生成可读的占位符(如 var1var2)并还原正确的结构,但无法恢复原始的语义名称。

不。它将代码解析为抽象语法树(AST)并应用静态转换。纯表达式(如 0x1F3 + 5)会被折叠处理,但不会涉及网络、Cookie 或 DOM。

是的,但打包器输出的是经过精简而非刻意混淆的代码,因此最终结果只是经过美化且保留了模块包装层的代码。如果单独提供源代码映射文件,可获得更清晰的命名方案。

大型商业工具(如企业级JScrambler、定制虚拟机)会引入静态分析无法解析的字节码解释器。这些工具虽能获取表层代码,但核心逻辑仍难以理解,除非进行手动逆向工程。

相关工具

此工具还提供其他语言版本