HumanifyJS:基于 LLM 与 Babel 的 JS 反混淆工具
TechFoco 精选
HumanifyJS 是一个利用大型语言模型和 Babel 进行 JavaScript 代码反混淆的工具,支持云端和本地两种运行模式,旨在提升混淆代码的可读性与可维护性。
在 JavaScript 生态中,代码混淆是常见的保护手段,但同时也给安全审计、逆向分析和代码维护带来了巨大挑战。传统反混淆方法往往难以在保持功能等价的同时,恢复代码的可读性。HumanifyJS 的出现,旨在通过结合前沿的大型语言模型与成熟的代码解析工具,解决这一痛点。

核心内容
HumanifyJS 的核心工作原理是结合大型语言模型与 Babel 编译器。它利用 LLM 的代码理解能力,为混淆后的变量和函数提供智能的重命名建议;同时,通过 Babel 插件在抽象语法树级别进行代码结构的还原与整理,确保输出代码在功能上与原始混淆代码完全等价。
该工具主要提供两种运行模式:
- 云端精确模式:需要 OpenAI 或 Gemini 的 API Key,按处理的代码长度计费。此模式利用云端 LLM 的强大能力,反混淆的准确度最高。
- 本地模式:完全免费,但处理速度和结果准确度相对受限。该模式支持在配备 M 系列芯片的 Mac 电脑上使用 GPU 加速,并能自动切换至 CPU 以充分利用硬件性能。
此外,HumanifyJS 内置了 Webcrack,能够自动解包由 Webpack 等工具打包的捆绑文件,简化了处理流程。其安装和使用也较为便捷,要求在 Node.js 20 及以上环境中,通过 npm 进行全局安装或直接使用 npx 命令运行。
价值与影响
HumanifyJS 为处理混淆的 JavaScript 代码提供了一种新的思路。它显著降低了阅读和理解混淆代码的门槛,能够有效助力安全研究人员进行漏洞审计、帮助开发者进行逆向学习,并提升在维护遗留混淆代码时的效率。需要注意的是,在使用其云端模式处理大型文件时,用户需关注 LLM API 的 token 消耗及其产生的相应成本。
来源:黑洞资源笔记