jehna/humanify

Deobfuscate Javascript code using ChatGPT

解决的问题

它能恢复混淆后的 JavaScript 代码的可读性。混淆代码通常会将具有描述性的变量和函数名称替换为简短且无意义的标识符(如 abc),使得人类难以理解和进行逆向工程。该工具利用 AI 根据代码上下文建议有意义的名称。

工作原理

该工具将大语言模型 (LLM) 与 JavaScript 抽象语法树 (AST) 解析器相结合。LLM 仅用于根据周围的代码上下文建议新的、具有描述性的标识符名称。为了确保代码在结构上保持一致且功能完好,实际的重命名是在 AST 级别使用 oxc 库完成的,该库负责处理词法作用域并防止命名冲突。

适用对象

需要分析、调试或对混淆后的 JavaScript 文件进行逆向工程的开发人员和安全研究人员。

亮点

  • 多供应商支持:支持 OpenAI、Gemini、Anthropic、Ollama (本地)、OpenRouter 和 Requesty。
  • AST 级精度:确保重命名保留所有引用并遵循词法作用域。
  • 静态二进制文件:以基于 Rust 的单个二进制文件形式发布,无需 Node.js 或 Python 依赖即可轻松安装。
  • Unix 风格 I/O:支持从 stdin 读取和向 stdout 写入,允许与 webcrack 等其他工具进行管道操作。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目