开源AI反混淆JS代码:HumanifyJS
HumanifyJS 是一个开源工具,专注于通过结合大型语言模型(LLM)和其他工具来实现 JavaScript 代码的反混淆、反压缩、转译、反编译以及解包。它利用了 LLM 提供的智能提示功能,通过重命名变量和函数名称来让代码更具可读性,同时确保代码的功能与原始代码保持完全一致。
目前,HumanifyJS 项目已经在 GitHub 上开源,拥有超过 1.1k+ 颗星标(star),项目关键词为 jehna/humanify。
主要功能
HumanifyJS 的设计初衷是帮助开发者轻松反混淆、优化和理解复杂的 JavaScript 代码。以下是 HumanifyJS 提供的核心功能:
智能重命名建议:
HumanifyJS 利用 ChatGPT 等大型语言模型提供智能建议,帮助开发者对混淆后的变量和函数名称进行重命名,使代码变得更加易读。Babel AST 级别代码整理:
HumanifyJS 使用 Babel 的自定义插件和现成的插件,在抽象语法树(AST)级别进行代码分析和整理,确保代码结构不变的同时提升可读性。Webpack 包解包:
HumanifyJS 集成了 Webcrack 工具,能够对 Webpack 打包的 JavaScript 进行解包,帮助开发者还原打包前的源码。
LLM 支持
HumanifyJS 支持通过 OpenAI 的 ChatGPT、Gemini 或者本地部署的语言模型来为变量和函数名重命名提供建议。如果你使用的是非本地的大型语言模型(如 OpenAI),需要自备对应的 API Key。
适用场景
HumanifyJS 特别适用于以下场景:
- 需要对混淆或压缩后的 JavaScript 代码进行反混淆、重命名或解读。
- 需要对打包后的代码进行解包,还原源码结构。
- 开发者希望通过代码反混淆和重命名,使代码变得更具可读性,方便调试和维护。
使用环境
HumanifyJS 需要以下环境支持:
- Node.js >= 20:确保你使用的是最新的 Node.js 环境,以保证工具的顺利运行。
如何使用
要开始使用 HumanifyJS,首先需要从 GitHub 仓库中克隆项目,并根据需要配置大型语言模型 API:
git clone https://github.com/jehna/humanify.git
cd humanify
npm install
接着,你可以根据项目文档进行进一步的设置和配置,并开始对 JavaScript 代码进行反混淆、解包和重命名操作。
注意事项
- 在使用 HumanifyJS 时,如果需要使用外部 LLM 提供的服务(如 OpenAI 的 ChatGPT),你需要提前申请并配置好对应的 API Key。
- 虽然 HumanifyJS 能够对代码进行反混淆和解包操作,但它不会对代码进行结构性更改,因此在处理大型项目时,需要结合实际业务场景使用。
项目链接
你可以在 GitHub 上访问并了解更多关于 HumanifyJS 的详细信息:
HumanifyJS GitHub 仓库
HumanifyJS 的诞生为开发者提供了一个强大的工具,帮助他们在面对混淆和打包后的 JavaScript 代码时,可以轻松还原并理解代码逻辑。它结合了大型语言模型和 Babel 强大的 AST 操作能力,使得复杂代码的处理变得更加轻松、智能。