- 一个自实现的JS程序分析工具
- 设计理念参考workflow.md
- 胎死腹中的工具...写一半发现设计理念和 jelly 重复了; 目前可以进行基础的AST解析, 命名空间解析和MDG解析, 后面发现设计思路重合就摆烂了, 权当是coding练习了
- MDG: 分析模块(文件)之间的依赖关系, 生成模块依赖图; 图结构为每个js文件的导入导出字典
- 根据根据跨模块引入的语法不同(Es6 or CommonJS), 存在可配置的两个版本的依赖图构建
- 分析全部文件中的变量/对象/方法的命名空间, 最终生成命名空间图, 图结构为前缀树图(实现为字典)
- 分析 Class/Interfece 的继承关系, 生成继承关系图(结构为字典)
- MPTA: 分析函数指针, 生成函数对象指向关系图
- 基于 MPTA 和 Inheritance Analysis 的结果生成 CallGraph
- cs-au-dk/jelly
- Swatinem/esgraph
- Swatinem/analyses
- Song-Li/ODGen
- CoCoAbstractInterpretation/CoCo
- fast-sp-2023/fast
- SoheilKhodayari/JAW
- flyboss/MiniTracker
- sukyoung/safe
- KTH-LangSec/silent-spring (仅包含一个CodeQL的查询Pipeline, 没有程序分析base上的内容)
- Reducing Static Analysis Unsoundness with Approximate Interpretation
- Modular Call Graph Construction for Security Scanning of Node.js Applications
- Indirection-Bounded Call Graph Analysis
- Practical Static Analysis of JavaScript Applications in the Presence of Frameworks and Libraries
- JAW: Studying Client-side CSRF with Hybrid Property Graphs and Declarative Traversals