google/jsir

Next-generation JavaScript analysis tooling

解决的问题

JSIR 提供了一种在高阶源码表示与低阶数据流分析之间取得平衡的 JavaScript 代码分析与转换方法。这使得开发者能够执行复杂任务,例如将字节码反编译回可读的 JavaScript 代码,或去除代码中的混淆。

工作原理

它使用基于 MLIR(多级中间表示)的高阶中间表示。该设计利用 MLIR 区域来建模控制流结构,确保表示足够高阶,可转换回抽象语法树(AST)以支持源码到源码的转换,同时又足够低阶,可支持常量传播、污点分析等技术分析。

适用人群

专注于代码分析、反编译和 JavaScript 混淆去除的安全研究人员和开发者。

主要亮点

  • 无损转换:支持将代码还原为源码,不丢失任何信息。
  • MLIR 集成:利用 MLIR 框架实现高级分析。
  • 混淆去除能力:可与 LLM(如 Gemini)结合,清理混淆代码。
  • 字节码反编译:能够将 Hermes 字节码提升回 JavaScript 源码。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目