google/jsir

Next-generation JavaScript analysis tooling

解決的問題

JSIR 提供了一種在高階原始碼表示與低階資料流分析之間取得平衡的 JavaScript 程式碼分析與轉換方法。這使得開發者能夠執行複雜任務,例如將位元組碼反編譯回可讀的 JavaScript 程式碼,或去除程式碼中的混淆。

工作原理

它使用基於 MLIR(多層中間表示)的高階中間表示。此設計利用 MLIR 區域來建模控制流程結構,確保表示足夠高階,可轉換回抽象語法樹(AST)以支援源碼到源碼的轉換,同時又足夠低階,可支援常數傳播、污點分析等技術分析。

適用對象

專注於程式碼分析、反編譯與 JavaScript 混淆去除的安全研究人員與開發者。

主要亮點

  • 無損轉換:支援將程式碼還原為原始碼,不遺失任何資訊。
  • MLIR 集成:利用 MLIR 框架實現高階分析。
  • 混淆去除能力:可與 LLM(如 Gemini)結合,清理混淆程式碼。
  • 位元組碼反編譯:能夠將 Hermes 位元組碼提升回 JavaScript 原始碼。

相關

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