这个项目能做什么

PyFlow是一个处于alpha阶段的Python程序分析框架,设计为研究工具包,结合了程序分析基础设施、实验性优化pass和安全检查。它提供了多种中间表示(CFG、CDG、DDG、PDG、CPG、降级数据流IR以及共享存储图模型),并支持多种分析技术,包括调用图构建、IFDS、别名、IPA、CPA、形状、生命周期和类型分析。 该框架包含一个模块化的优化流水线,具有简化、方法调用优化、克隆、参数规范化和加载/存储消除等pass。在安全方面,它提供AST模式匹配、基于AST的数据流、基于CPG和IFDS支持的安全分析引擎。它还包括供应链分析能力,用于本地SBOM生成、分发完整性审计和依赖元数据提取。 PyFlow附带一个CLI,支持IR转储、调用图生成、安全分析、别名分析、concolic测试输入生成和供应链操作等命令。它还提供LSP和MCP服务器模式,用于IDE集成和语义查询。该项目包括在PySASTBench微基准上的评估结果,显示其安全引擎的精确度/召回率指标。 安装需要Python 3.10+和Graphviz用于可视化。可以通过pip从源代码安装,可选附加组件用于开发和PyCG支持的调用图算法。该项目包括覆盖IR、前端、API和检查器组件的单元和集成测试套件。