Humanify 深度解析AST 智能重命名与多 LLM 集成的代码反混淆架构设计【免费下载链接】humanifyDeobfuscate Javascript code using ChatGPT项目地址: https://gitcode.com/gh_mirrors/hu/humanifyHumanify 是一款基于大型语言模型LLM的 JavaScript 代码反混淆工具通过创新的 AST抽象语法树解析与智能重命名技术将压缩混淆的代码恢复为可读性强的格式。该项目采用 Rust 语言实现提供单一静态二进制文件支持 OpenAI、Gemini、Anthropic、Ollama 和 OpenRouter 等多种 LLM 服务为开发者提供高效、智能的代码反混淆解决方案。技术挑战传统反混淆工具的局限性现代前端工程中JavaScript 代码通常经过压缩混淆处理将变量名缩短为a、b、c等无意义标识符函数名也被简化为难以理解的字符序列。虽然这种处理减小了文件体积但严重影响了代码的可读性和可维护性。传统反混淆工具主要依赖静态规则匹配和模式识别面临以下核心挑战语义理解缺失无法理解变量在上下文中的实际含义和用途命名冲突风险简单的规则替换可能导致命名冲突和作用域问题上下文感知不足难以根据代码逻辑生成合理的变量名多模型适配复杂不同 LLM 服务 API 差异大统一集成困难创新方案AST 解析与 LLM 语义理解的深度融合Humanify 通过将 AST 结构化分析与 LLM 语义理解能力相结合实现了突破性的代码反混淆方案。其核心创新在于AST 精准作用域分析项目使用 oxc 作为 JavaScript 解析器将代码转换为精确的抽象语法树。通过深度遍历 AST 节点Humanify 能够识别所有标识符变量、函数、类名的作用域边界按作用域大小排序处理顺序从大到小确保重命名操作不破坏代码的语法结构和逻辑关系// src/rename/walker.rs 中的核心作用域分析逻辑 pub fn rename_all_identifiersR: Renamer( source: str, renamer: mut R, ) - ResultString, RenameError { // 解析 JavaScript 代码生成 AST let allocator Allocator::default(); let source Arc::from(source); let ret Parser::new(allocator, source, SourceType::default()).parse(); // 遍历所有标识符并应用重命名策略 // ... }LLM 智能命名建议系统Humanify 设计了智能的提示工程系统为每个标识符生成包含上下文信息的提示词// src/llm/renamer.rs 中的提示词生成逻辑 let user format!( Surrounding code:\njavascript\n{surrounding_code}\n\n\nThe identifier currently named {original} appears in this code. Suggest a single descriptive replacement name. Rules:\n- camelCase for variables and functions, PascalCase for classes/constructors\n- ASCII letters, digits, underscores only; first character must be a letter or underscore\n- Avoid JavaScript reserved words\n- If the current name is already meaningful, return it unchanged );架构实现模块化设计与多 LLM 适配器核心架构分层Humanify 采用清晰的三层架构设计确保系统的可扩展性和维护性CLI 接口层(src/cli/)提供命令行参数解析和用户交互LLM 适配层(src/llm/)统一多 LLM 服务接口支持不同 API 协议AST 重命名层(src/rename/)处理代码解析和标识符重命名逻辑多 LLM 策略适配器项目实现了灵活的 JSON 策略系统支持不同 LLM 服务的结构化输出要求// src/llm/mod.rs 中的策略接口定义 #[async_trait] pub trait JsonStrategy: Send Sync { async fn call(self, system: str, user: str, schema: Value) - ResultValue, StrategyError; fn name(self) - static str; }支持的具体策略包括ladder默认智能选择最佳 JSON 输出策略openai-json-schemaOpenAI 原生 JSON Schema 支持anthropic-nativeAnthropic 结构化输出 APIforced-tool-call强制工具调用模式tool-call-and-prompt工具调用与提示结合prompt纯提示模式智能重命名工作流Humanify 的重命名流程体现了高度的工程化设计输入代码 → AST解析 → 作用域分析 → LLM命名建议 → 冲突检测 → 安全重命名 → 输出代码每个步骤都经过精心优化作用域分析确保变量重命名不影响其他作用域冲突检测自动处理命名冲突必要时添加_前缀安全重命名遵循 JavaScript 标识符规范避免保留字冲突性能评估效率与成本的平衡优化令牌使用优化策略Humanify 针对 LLM API 调用成本进行了深度优化上下文窗口控制默认每个标识符使用 500 字符的上下文窗口平衡准确性与成本批量处理优化虽然每个标识符独立调用 LLM但通过智能上下文截取减少冗余模型选择灵活性支持从 GPT-5 Mini 到本地 Ollama 模型的多层次选择处理效率分析对于典型的中等规模混淆文件约 500 个标识符OpenAI GPT-5 Mini处理成本约 $0.10–$1.00响应时间快Gemini 免费层完全免费适合个人和小型项目Ollama 本地模型零成本隐私性最强但处理速度较慢OpenRouter 免费模型提供多种免费模型选择适合预算有限场景内存与性能优化作为 Rust 实现的工具Humanify 具有以下性能优势内存安全Rust 的所有权系统确保无内存泄漏零成本抽象高效的 AST 遍历和字符串处理并发友好为未来并行处理预留了架构空间应用场景从学习到生产的多层次价值开源项目学习与逆向工程开发者可以使用 Humanify 快速理解压缩后的开源库代码学习其实现原理和设计模式。通过智能重命名原本难以阅读的a、b、c变量被恢复为userInput、dataBuffer、resultCount等有意义的名称大幅降低学习门槛。遗留代码维护与重构对于历史遗留的混淆代码Humanify 提供了一种渐进式重构路径。开发团队可以使用 Humanify 生成初步可读版本基于可读代码进行功能理解和测试编写逐步实施现代化重构安全审计与代码审查安全研究人员可以利用 Humanify 分析第三方 JavaScript 库的安全性识别潜在的安全漏洞和恶意代码模式。清晰的变量名有助于理解代码逻辑发现隐藏的安全风险。教育与培训编程教育机构可以使用 Humanify 展示代码压缩与反压缩的实际过程帮助学生理解抽象语法树和代码优化技术。技术融合带来的突破性改进Humanify 的成功在于将传统编译器技术与现代 AI 能力深度结合AST 精确性与 LLM 创造性的结合传统编译器技术提供精确的语法分析和作用域管理确保重命名的正确性LLM 提供基于上下文的语义理解生成有意义的变量名。这种结合克服了纯规则系统的僵化和纯 AI 系统的不确定性。多模型架构的工程实践Humanify 展示了如何在实际工程中集成多种 LLM 服务处理不同 API 协议、速率限制和成本模型。其设计为其他 AI 辅助开发工具提供了参考架构。渐进式改进路径项目支持从完全免费Ollama到商业 APIOpenAI的多层次选择用户可以根据项目需求和预算灵活选择体现了优秀的工程实用性。未来发展方向与技术展望基于当前架构Humanify 有以下潜在发展方向并行处理优化利用 Rust 的并发特性并行处理多个标识符上下文共享在相关标识符间共享上下文信息减少重复 LLM 调用自定义规则引擎允许用户定义特定领域的命名规则和模式IDE 集成开发编辑器插件提供实时反混淆支持多语言扩展将技术扩展到 TypeScript、Python 等其他语言总结智能代码反混淆的新范式Humanify 代表了代码反混淆工具的新一代发展方向通过将精确的 AST 分析与智能的 LLM 语义理解相结合解决了传统工具无法处理的复杂场景。其模块化架构、多 LLM 支持和工程化优化使其成为开发者在代码理解、维护和安全审计中的强大工具。项目的开源特性和技术透明度也为社区贡献和技术演进提供了坚实基础。随着 LLM 技术的不断发展Humanify 这类工具将在软件开发的各个阶段发挥越来越重要的作用推动代码质量和开发效率的持续提升。【免费下载链接】humanifyDeobfuscate Javascript code using ChatGPT项目地址: https://gitcode.com/gh_mirrors/hu/humanify创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
Humanify 深度解析:AST 智能重命名与多 LLM 集成的代码反混淆架构设计
发布时间:2026/7/10 21:25:31
Humanify 深度解析AST 智能重命名与多 LLM 集成的代码反混淆架构设计【免费下载链接】humanifyDeobfuscate Javascript code using ChatGPT项目地址: https://gitcode.com/gh_mirrors/hu/humanifyHumanify 是一款基于大型语言模型LLM的 JavaScript 代码反混淆工具通过创新的 AST抽象语法树解析与智能重命名技术将压缩混淆的代码恢复为可读性强的格式。该项目采用 Rust 语言实现提供单一静态二进制文件支持 OpenAI、Gemini、Anthropic、Ollama 和 OpenRouter 等多种 LLM 服务为开发者提供高效、智能的代码反混淆解决方案。技术挑战传统反混淆工具的局限性现代前端工程中JavaScript 代码通常经过压缩混淆处理将变量名缩短为a、b、c等无意义标识符函数名也被简化为难以理解的字符序列。虽然这种处理减小了文件体积但严重影响了代码的可读性和可维护性。传统反混淆工具主要依赖静态规则匹配和模式识别面临以下核心挑战语义理解缺失无法理解变量在上下文中的实际含义和用途命名冲突风险简单的规则替换可能导致命名冲突和作用域问题上下文感知不足难以根据代码逻辑生成合理的变量名多模型适配复杂不同 LLM 服务 API 差异大统一集成困难创新方案AST 解析与 LLM 语义理解的深度融合Humanify 通过将 AST 结构化分析与 LLM 语义理解能力相结合实现了突破性的代码反混淆方案。其核心创新在于AST 精准作用域分析项目使用 oxc 作为 JavaScript 解析器将代码转换为精确的抽象语法树。通过深度遍历 AST 节点Humanify 能够识别所有标识符变量、函数、类名的作用域边界按作用域大小排序处理顺序从大到小确保重命名操作不破坏代码的语法结构和逻辑关系// src/rename/walker.rs 中的核心作用域分析逻辑 pub fn rename_all_identifiersR: Renamer( source: str, renamer: mut R, ) - ResultString, RenameError { // 解析 JavaScript 代码生成 AST let allocator Allocator::default(); let source Arc::from(source); let ret Parser::new(allocator, source, SourceType::default()).parse(); // 遍历所有标识符并应用重命名策略 // ... }LLM 智能命名建议系统Humanify 设计了智能的提示工程系统为每个标识符生成包含上下文信息的提示词// src/llm/renamer.rs 中的提示词生成逻辑 let user format!( Surrounding code:\njavascript\n{surrounding_code}\n\n\nThe identifier currently named {original} appears in this code. Suggest a single descriptive replacement name. Rules:\n- camelCase for variables and functions, PascalCase for classes/constructors\n- ASCII letters, digits, underscores only; first character must be a letter or underscore\n- Avoid JavaScript reserved words\n- If the current name is already meaningful, return it unchanged );架构实现模块化设计与多 LLM 适配器核心架构分层Humanify 采用清晰的三层架构设计确保系统的可扩展性和维护性CLI 接口层(src/cli/)提供命令行参数解析和用户交互LLM 适配层(src/llm/)统一多 LLM 服务接口支持不同 API 协议AST 重命名层(src/rename/)处理代码解析和标识符重命名逻辑多 LLM 策略适配器项目实现了灵活的 JSON 策略系统支持不同 LLM 服务的结构化输出要求// src/llm/mod.rs 中的策略接口定义 #[async_trait] pub trait JsonStrategy: Send Sync { async fn call(self, system: str, user: str, schema: Value) - ResultValue, StrategyError; fn name(self) - static str; }支持的具体策略包括ladder默认智能选择最佳 JSON 输出策略openai-json-schemaOpenAI 原生 JSON Schema 支持anthropic-nativeAnthropic 结构化输出 APIforced-tool-call强制工具调用模式tool-call-and-prompt工具调用与提示结合prompt纯提示模式智能重命名工作流Humanify 的重命名流程体现了高度的工程化设计输入代码 → AST解析 → 作用域分析 → LLM命名建议 → 冲突检测 → 安全重命名 → 输出代码每个步骤都经过精心优化作用域分析确保变量重命名不影响其他作用域冲突检测自动处理命名冲突必要时添加_前缀安全重命名遵循 JavaScript 标识符规范避免保留字冲突性能评估效率与成本的平衡优化令牌使用优化策略Humanify 针对 LLM API 调用成本进行了深度优化上下文窗口控制默认每个标识符使用 500 字符的上下文窗口平衡准确性与成本批量处理优化虽然每个标识符独立调用 LLM但通过智能上下文截取减少冗余模型选择灵活性支持从 GPT-5 Mini 到本地 Ollama 模型的多层次选择处理效率分析对于典型的中等规模混淆文件约 500 个标识符OpenAI GPT-5 Mini处理成本约 $0.10–$1.00响应时间快Gemini 免费层完全免费适合个人和小型项目Ollama 本地模型零成本隐私性最强但处理速度较慢OpenRouter 免费模型提供多种免费模型选择适合预算有限场景内存与性能优化作为 Rust 实现的工具Humanify 具有以下性能优势内存安全Rust 的所有权系统确保无内存泄漏零成本抽象高效的 AST 遍历和字符串处理并发友好为未来并行处理预留了架构空间应用场景从学习到生产的多层次价值开源项目学习与逆向工程开发者可以使用 Humanify 快速理解压缩后的开源库代码学习其实现原理和设计模式。通过智能重命名原本难以阅读的a、b、c变量被恢复为userInput、dataBuffer、resultCount等有意义的名称大幅降低学习门槛。遗留代码维护与重构对于历史遗留的混淆代码Humanify 提供了一种渐进式重构路径。开发团队可以使用 Humanify 生成初步可读版本基于可读代码进行功能理解和测试编写逐步实施现代化重构安全审计与代码审查安全研究人员可以利用 Humanify 分析第三方 JavaScript 库的安全性识别潜在的安全漏洞和恶意代码模式。清晰的变量名有助于理解代码逻辑发现隐藏的安全风险。教育与培训编程教育机构可以使用 Humanify 展示代码压缩与反压缩的实际过程帮助学生理解抽象语法树和代码优化技术。技术融合带来的突破性改进Humanify 的成功在于将传统编译器技术与现代 AI 能力深度结合AST 精确性与 LLM 创造性的结合传统编译器技术提供精确的语法分析和作用域管理确保重命名的正确性LLM 提供基于上下文的语义理解生成有意义的变量名。这种结合克服了纯规则系统的僵化和纯 AI 系统的不确定性。多模型架构的工程实践Humanify 展示了如何在实际工程中集成多种 LLM 服务处理不同 API 协议、速率限制和成本模型。其设计为其他 AI 辅助开发工具提供了参考架构。渐进式改进路径项目支持从完全免费Ollama到商业 APIOpenAI的多层次选择用户可以根据项目需求和预算灵活选择体现了优秀的工程实用性。未来发展方向与技术展望基于当前架构Humanify 有以下潜在发展方向并行处理优化利用 Rust 的并发特性并行处理多个标识符上下文共享在相关标识符间共享上下文信息减少重复 LLM 调用自定义规则引擎允许用户定义特定领域的命名规则和模式IDE 集成开发编辑器插件提供实时反混淆支持多语言扩展将技术扩展到 TypeScript、Python 等其他语言总结智能代码反混淆的新范式Humanify 代表了代码反混淆工具的新一代发展方向通过将精确的 AST 分析与智能的 LLM 语义理解相结合解决了传统工具无法处理的复杂场景。其模块化架构、多 LLM 支持和工程化优化使其成为开发者在代码理解、维护和安全审计中的强大工具。项目的开源特性和技术透明度也为社区贡献和技术演进提供了坚实基础。随着 LLM 技术的不断发展Humanify 这类工具将在软件开发的各个阶段发挥越来越重要的作用推动代码质量和开发效率的持续提升。【免费下载链接】humanifyDeobfuscate Javascript code using ChatGPT项目地址: https://gitcode.com/gh_mirrors/hu/humanify创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考