google/jsir

Next-generation JavaScript analysis tooling

何を解決するか

JSIR は、高レベルのソース表現と低レベルのデータフロー解析のバランスを取った JavaScript コードの分析・変換を可能にします。これにより、バイトコードを読みやすい JavaScript に復元するデコンパイルや、コードの難読化を解除する作業を実行できます。

動作方法

MLIR(Multi-Level Intermediate Representation)に基づく高レベルの中間表現を使用しています。この設計では、MLIR のリージョンを使って制御フロー構造をモデル化しており、抽象構文木(AST)に変換可能な高レベルな表現を維持しつつ、定数伝搬や汚染分析などの技術的解析をサポートできる低レベル性を兼ね備えています。

対象ユーザー

JavaScript のコード解析、デコンパイル、難読化解除に注力するセキュリティ研究者や開発者です。

特徴

  • 情報損失なしの変換: ソースに戻す際に情報を失わず、元のコードを正確に再構築可能。
  • MLIR 統合: 先進的な解析に向けた MLIR フレームワークを活用。
  • 難読化解除機能: Gemini などの LLM と組み合わせて、難読化されたコードをクリーンアップ可能。
  • バイトコードのデコンパイル: Hermes バイトコードを JavaScript ソースコードに復元可能。

関連

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