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 等其他工具進行管道操作。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案