综合 开源AI反混淆JS代码:HumanifyJS

2024-11-19 02:30:40 +0800 CST views 3664

开源AI反混淆JS代码:HumanifyJS

HumanifyJS 是一个开源工具,专注于通过结合大型语言模型(LLM)和其他工具来实现 JavaScript 代码的反混淆、反压缩、转译、反编译以及解包。它利用了 LLM 提供的智能提示功能,通过重命名变量和函数名称来让代码更具可读性,同时确保代码的功能与原始代码保持完全一致。
目前,HumanifyJS 项目已经在 GitHub 上开源,拥有超过 1.1k+ 颗星标(star),项目关键词为 jehna/humanify

主要功能

HumanifyJS 的设计初衷是帮助开发者轻松反混淆、优化和理解复杂的 JavaScript 代码。以下是 HumanifyJS 提供的核心功能:

  1. 智能重命名建议
    HumanifyJS 利用 ChatGPT 等大型语言模型提供智能建议,帮助开发者对混淆后的变量和函数名称进行重命名,使代码变得更加易读。

  2. Babel AST 级别代码整理
    HumanifyJS 使用 Babel 的自定义插件和现成的插件,在抽象语法树(AST)级别进行代码分析和整理,确保代码结构不变的同时提升可读性。

  3. Webpack 包解包
    HumanifyJS 集成了 Webcrack 工具,能够对 Webpack 打包的 JavaScript 进行解包,帮助开发者还原打包前的源码。

LLM 支持

HumanifyJS 支持通过 OpenAI 的 ChatGPT、Gemini 或者本地部署的语言模型来为变量和函数名重命名提供建议。如果你使用的是非本地的大型语言模型(如 OpenAI),需要自备对应的 API Key。
images

适用场景

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 操作能力,使得复杂代码的处理变得更加轻松、智能。

推荐文章

Go语言SQL操作实战
2024-11-18 19:30:51 +0800 CST
jQuery中向DOM添加元素的多种方法
2024-11-18 23:19:46 +0800 CST
基于Webman + Vue3中后台框架SaiAdmin
2024-11-19 09:47:53 +0800 CST
LLM驱动的强大网络爬虫工具
2024-11-19 07:37:07 +0800 CST
Manticore Search:高性能的搜索引擎
2024-11-19 03:43:32 +0800 CST
什么是Vue实例(Vue Instance)?
2024-11-19 06:04:20 +0800 CST
前端代码规范 - Commit 提交规范
2024-11-18 10:18:08 +0800 CST
Vue3 中提供了哪些新的指令
2024-11-19 01:48:20 +0800 CST
go错误处理
2024-11-18 18:17:38 +0800 CST
为什么大厂也无法避免写出Bug?
2024-11-19 10:03:23 +0800 CST
Vue3中的v-for指令有什么新特性?
2024-11-18 12:34:09 +0800 CST
浏览器自动播放策略
2024-11-19 08:54:41 +0800 CST
vue打包后如何进行调试错误
2024-11-17 18:20:37 +0800 CST
Web浏览器的定时器问题思考
2024-11-18 22:19:55 +0800 CST
Go中使用依赖注入的实用技巧
2024-11-19 00:24:20 +0800 CST
Vue 中如何处理父子组件通信?
2024-11-17 04:35:13 +0800 CST
MySQL 优化利剑 EXPLAIN
2024-11-19 00:43:21 +0800 CST
如何开发易支付插件功能
2024-11-19 08:36:25 +0800 CST
程序员茄子在线接单