jehna/humanify

Deobfuscate Javascript code using ChatGPT

解決する課題

難読化されたJavaScriptコードの可読性を復元します。難読化されたコードは、通常、記述的な変数名や関数名を短く無意味な識別子(abc など)に置き換えるため、人間がコードを理解したりリバースエンジニアリングしたりすることが困難になります。このツールはAIを使用して、コードの文脈に基づいて意味のある名前を提案します。

仕組み

このツールは、大規模言語モデル(LLM)とJavaScriptの抽象構文木(AST)パーサーを組み合わせています。LLMは、周囲のコードの文脈に基づいて、新しい記述的な識別子名を提案するためだけに使用されます。コードの構造と機能を完全に維持するために、実際の書き換えは oxc ライブラリを使用してASTレベルで行われ、これによりレキシカルスコープが処理され、名前の衝突が防止されます。

対象ユーザー

難読化されたJavaScriptファイルの分析、デバッグ、またはリバースエンジニアリングが必要な開発者やセキュリティ研究者。

特徴

  • マルチプロバイダー対応: OpenAI、Gemini、Anthropic、Ollama (ローカル)、OpenRouter、Requesty に対応しています。
  • ASTレベルの精度: 書き換えがすべての参照を保持し、レキシカルスコープを尊重することを保証します。
  • 静的バイナリ: Rustベースの単一バイナリとして配布されているため、Node.jsやPythonの依存関係なしで簡単にインストールできます。
  • UnixスタイルのI/O: stdinからの読み込みとstdoutへの書き出しをサポートしており、webcrack のような他のツールとのパイプ処理が可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト