SVF

SVF-tools活跃维护

基于 LLVM 的源码静态值流分析框架,能做指针分析、依赖分析和缺陷检测,适合做代码审计和验证。

Static Value-Flow Analysis Framework for Source Code

SVF-3.3发布于 2026-05-20 02:35 UTC1,716star499fork同步于 2026-11-10 11:47 UTC

怎么上手

由 README 提炼,执行前请确认
source ./build.sh
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 LLVM IR 的可复用静态值流分析框架,帮你搭建指针分析与内存检查工具

基于 LLVM 的源码静态值流分析框架,能做指针分析、依赖分析和缺陷检测,适合做代码审计和验证。

核心能力

  • 提供 SVFIR 内存抽象与指向关系数据结构
  • 支持域敏感、流敏感的全程序指针分析
  • 提供按需驱动的流敏感上下文敏感指向分析
  • 构建内存 SSA 形式并分析内存区域与副作用
  • 内置 SABER 检测内存泄漏与重复释放

容易踩的坑

需自行准备并匹配对应版本的 LLVM(README 列出支持 LLVM-4 至 LLVM-22);作为库使用时需参考 SVF-example 单独接入;Python 绑定需另装 SVF-Python 项目

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本SVF-3.3
  1. SVF-3.3最新正式版2026-05-20 · 2026-05-20 02:35 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/SVF-tools/SVF/compare/SVF-3.2...SVF-3.3

  2. SVF-3.22025-12-17 · 2025-12-17 12:44 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/SVF-tools/SVF/compare/SVF-3.1...SVF-3.2

  3. SVF-3.12025-06-05 · 2025-06-05 11:48 UTC
    查看更新说明

    This is a major release:

    1. Significant refactoring of SVF code to decouple SVF from LLVM
    2. New features for abstract execution
    3. Build system upgrade
    4. NPM upgrade
    5. Many other bug fixing and improvement

    What's Changed

  4. SVF-3.02024-05-28 · 2024-05-28 02:59 UTC
    查看更新说明

    This is a stable release of SVF for LLVM-16.0.0 with the following change:

    • Fully support for opaque pointers
    • Object type inference
    • ExtAPI improvement
    • Abstract Interpretation API refactoring
    • Symbolic abstraction implementation improvement in abstract execution.

    In our next release, SVF will support LLVM-17 or 18.

    What's Changed

  5. SVF-2.92024-02-01 · 2024-02-01 10:44 UTC
    查看更新说明

    This is a stable release of SVF for LLVM-14.0.0 with the following change:

    • CMake significant changes
    • Supporting opaque pointers in progress
    • Performing improvement for Andersen in memory and speed
    • Symbolic abstraction implementation in abstract execution.

    In our next release, SVF will support LLVM-16 and merge the Abstract Execution solver code.

    What's Changed

    Full Changelog: https://github.com/SVF-tools/SVF/compare/SVF-2.8...SVF-2.9

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    SVF provides reusable abstractions, graphs, and solvers for analyzing LLVM IR.

    News

    • MSli, an on-demand program slicing tool for multithreaded programs, is now available in SVF/MTA.
    • SVF now supports LLVM-22 (Contributed by Giorgio).
    • SVF now supports LLVM-21 (Contributed by cjsrxzdyzds).
    • SVF now supports new build system (Thank Johannes for his help!).
    • SVF-Python is now available, enabling developers to write static analyzers in Python by leveraging the SVF library (Contributed by Jiawei Wang).
    • New course Software Security Analysis for learning code analysis and verification with SVF for fun and expertise!
    • SVF now supports LLVM-16.0.0 with opaque pointers (Contributed by Xiao Cheng).
    • Modernize SVF's CMake (Contributed by Johannes).

    Documentation

    About SVFSetup GuideUser GuideDeveloper Guide
    AboutSetupUserDeveloper
    Introducing SVF -- what it does and how we design itA step by step setup guide to build SVFCommand-line options to run SVF, get analysis outputs, and test SVF with an example or PTABenDetailed technical documentation and how to write your own analyses in SVF or use SVF as a lib for your tool, and the course on SVF

    SVF's doxygen document is available here.

    Features and Publications

    SVF (CC'16) is able to perform

    • AE (abstract execution): cross-domain execution (ICSE'24), selective widening (OOPSLA'25), recursion analysis (ECOOP'25), typestate analysis (FSE'24);
    • WPA (whole program analysis): field-sensitive (SAS'19), flow-sensitive (CGO'21, OOPSLA'21) analysis;
    • DDA (demand-driven analysis): flow-sensitive, context-sensitive points-to analysis (FSE'16, TSE'18);
    • MSSA (memory SSA form construction): memory regions, side-effects, SSA form (JSS'18);
    • SABER (memory error checking): memory leaks and double-frees (ISSTA'12, TSE'14, ICSE'18);
    • MTA (analysis of multithreaded programs): value-flows for multithreaded programs (CGO'16), on-demand program slicing (ISSTA'26);
    • CFL (context-free-reachability analysis): standard CFL solver, graph and grammar (OOPSLA'22, PLDI'23);
    • SVFIR and MemoryModel (SVFIR): SVFIR, memory abstraction and points-to data structure (SAS'21);
    • Graphs: generating a variety of graphs, including call graph, ICFG, class hierarchy graph, constraint graph, value-flow graph for static analyses and code embedding (OOPSLA'20, TOSEM'21)