SVF-tools/SVF

GitHub: SVF-tools/SVF

SVF是一个基于LLVM的源码静态值流分析框架,提供指针分析、内存错误检测和多种程序图生成功能。

Stars: 1673 | Forks: 488

## 新闻 * SVF 现已支持 [LLVM-21](https://github.com/SVF-tools/SVF/pull/1815)(由 [cjsrxzdyzds](https://github.com/cjsrxzdyzds) 贡献)。 * SVF 现已支持新的[构建系统](https://github.com/SVF-tools/SVF/pull/1703)(感谢 [Johannes](https://github.com/Johanmyst) 的帮助!)。 * [SVF-Python](https://github.com/SVF-tools/SVF-Python) 现已可用,开发者可以利用 SVF 库使用 Python 编写静态分析器(由 [Jiawei Wang](https://github.com/bjjwwang) 贡献)。 * 新课程 [Software Security Analysis](https://github.com/SVF-tools/Software-Security-Analysis) 可用于学习使用 SVF 进行代码分析和验证,有趣且专业! * SVF 现已支持带有 opaque pointers 的 LLVM-16.0.0(由 [Xiao Cheng](https://github.com/jumormt) 贡献)。 * SVF 的 CMake 现代化(由 [Johannes](https://github.com/Johanmyst) 贡献)。 * SVF 现已支持 LLVM-13.0.0(感谢 [Shengjie Xu](https://github.com/xushengj) 的帮助!)。 * 在我们的 [OOPSLA 论文](https://yuleisui.github.io/publications/oopsla21.pdf) 中发表的[对象聚类](https://github.com/SVF-tools/SVF/wiki/Object-Clustering) 现已在 SVF 中可用 * 在我们的 [SAS 论文](https://yuleisui.github.io/publications/sas21.pdf) 中发表的[哈希共享指向集](https://github.com/SVF-tools/SVF/wiki/Hash-Consed-Points-To-Sets) 现已在 SVF 中可用 * 正在学习或教授软件分析?请查看 [SVF-Teaching](https://github.com/SVF-tools/SVF-Teaching)! * SVF 现已支持 LLVM-12.0.0(感谢 [Xiyu Yang](https://github.com/sherlly/) 的帮助!)。 * 在我们的 [CGO 论文](https://yuleisui.github.io/publications/cgo21.pdf) 中发表的 [VSFS](https://github.com/SVF-tools/SVF/wiki/VSFS) 现已在 SVF 中可用 * 在我们的 [ECOOP 论文](https://yuleisui.github.io/publications/ecoop20.pdf) 中发表的 [TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) 现已在 SVF 中可用 * SVF 现在使用单一脚本进行构建。只需在终端中输入 [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh),就完成了! * SVF 现已支持 LLVM-10.0.0! * 我们感谢 [bsauce](https://github.com/bsauce) 撰写了一份中文版 SVF 用户手册([链接1](https://www.jianshu.com/p/068a08ec749c) 和 [链接2](https://www.jianshu.com/p/777c30d4240e)) * SVF 现已支持 LLVM-9.0.0(感谢 [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) 的帮助!)。 * SVF 现已支持一系列[域敏感指针分析](https://yuleisui.github.io/publications/sas2019a.pdf)。 * [将 SVF 用作外部库](https://github.com/SVF-tools/SVF-example) 用于你自己的项目(由 [Hongxu Chen](https://github.com/HongxuChen) 贡献)。 * SVF 现已支持 LLVM-7.0.0。 * SVF 现已支持 Docker。[在 Docker 中尝试 SVF](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! * SVF 现已支持 [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38)(由 [Jack Anthony](https://github.com/jackanth) 贡献)。 * SVF 现已支持 [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23)(由 Jared Carlson 贡献。感谢 [Jared](https://github.com/jcarlson23) 和 [Will](https://github.com/dtzWill) 就更新 SVF 进行的深入[讨论](https://github.com/svf-tools/SVF/pull/18)!) * SVF 现已支持 C++ 程序的分析。
## 文档
SVF 是一个用于基于 LLVM 语言的静态值流分析工具。SVF([CC'16](https://yuleisui.github.io/publications/cc16.pdf))能够执行 * [AE](https://github.com/SVF-tools/SVF/tree/master/svf/include/AE)(抽象执行):跨域执行([ICSE'24](https://yuleisui.github.io/publications/icse24a.pdf))、递归分析([ECOOP'25](https://yuleisui.github.io/publications/ecoop25.pdf))、类型状态分析([FSE'24](https://yuleisui.github.io/publications/fse24a.pdf)); * [WPA](https://github.com/SVF-tools/SVF/tree/master/svf/include/WPA)(全程序分析):域敏感([SAS'19](https://yuleisui.github.io/publications/sas2019a.pdf))、流敏感([CGO'21](https://yuleisui.github.io/publications/cgo21.pdf)、[OOPSLA'21](https://yuleisui.github.io/publications/oopsla21.pdf))分析; * [DDA](https://github.com/SVF-tools/SVF/tree/master/svf/include/DDA)(需求驱动分析):流敏感、上下文敏感的指向分析([FSE'16](https://yuleisui.github.io/publications/fse16.pdf)、[TSE'18](https://yuleisui.github.io/publications/tse18.pdf)); * [MSSA](https://github.com/SVF-tools/SVF/tree/master/svf/include/MSSA)(内存 SSA 形式构建):内存区域、副作用、SSA 形式([JSS'18](https://yuleisui.github.io/publications/jss18.pdf)); * [SABER](https://github.com/SVF-tools/SVF/tree/master/svf/include/SABER)(内存错误检测):内存泄漏和双重释放([ISSTA'12](https://yuleisui.github.io/publications/issta12.pdf)、[TSE'14](https://yuleisui.github.io/publications/tse14.pdf)、[ICSE'18](https://yuleisui.github.io/publications/icse18a.pdf)); * [MTA](https://github.com/SVF-tools/SVF/tree/master/svf/include/MTA)(多线程程序分析):针对多线程程序的值流分析([CGO'16](https://yuleisui.github.io/publications/cgo16.pdf)); * [CFL](https://github.com/SVF-tools/SVF/tree/master/svf/include/CFL)(上下文无关可达性分析):标准 CFL 求解器、图和文法([OOPSLA'22](https://yuleisui.github.io/publications/oopsla22.pdf)、[PLDI'23](https://yuleisui.github.io/publications/pldi23.pdf)); * [SVFIR](https://github.com/SVF-tools/SVF/tree/master/svf/include/SVFIR) 和 [MemoryModel](https://github.com/SVF-tools/SVF/tree/master/svf/include/MemoryModel)(SVFIR):SVFIR、内存抽象和指向数据结构([SAS'21](https://yuleisui.github.io/publications/sas21.pdf)); * [图](https://github.com/SVF-tools/SVF/tree/master/svf/include/Graphs):生成多种图,包括调用图、ICFG、类层次结构图、约束图、值流图,用于静态分析和代码嵌入([OOPSLA'20](https://yuleisui.github.io/publications/oopsla20.pdf)、[TOSEM'21](https://yuleisui.github.io/publications/tosem21.pdf))

我们发布 SVF 源代码是希望有益于开源社区。恳请您在使用该工具时,通过引用或提及上述相关出版物来予以说明。

SVF 的 doxygen 文档可在[此处](https://svf-tools.github.io/SVF-doxygen/html)获取。
| 关于 SVF | 设置指南 | 用户指南 | 开发者指南 | | ------------- |:-------------:| -----:|-----:| | ![About](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/99e4daddd9220433.png)| ![Setup](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e616173865220435.png) | ![User](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/1ae530cbca220437.png) | ![Developer](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2d4923b681220438.png) | SVF 介绍 —— [它的作用](https://github.com/svf-tools/SVF/wiki/About#what-is-svf) 以及 [我们是如何设计的](https://github.com/svf-tools/SVF/wiki/SVF-Design#svf-design) | 逐步的[设置指南](https://github.com/svf-tools/SVF/wiki/Setup-Guide#getting-started)以构建 SVF | 用于[运行 SVF](https://github.com/svf-tools/SVF/wiki/User-Guide#quick-start)、获取[分析输出](https://github.com/svf-tools/SVF/wiki/User-Guide#analysis-outputs)以及通过[示例](https://github.com/svf-tools/SVF/wiki/Analyze-a-Simple-C-Program) 或 [PTABen](https://github.com/SVF-tools/PTABen) 测试 SVF 的命令行选项 | 详细的[技术文档](https://github.com/svf-tools/SVF/wiki/Technical-documentation)以及如何在 SVF 中[编写自己的分析](https://github.com/svf-tools/SVF/wiki/Write-your-own-analysis-in-SVF),或者将 [SVF 用作库](https://github.com/SVF-tools/SVF-example)用于你的工具,以及关于 SVF 的[课程](https://github.com/SVF-tools/Software-Security-Analysis) |
标签:Bash脚本, C++, LLVM, Python绑定, TLS抓取, 云安全监控, 代码安全审计, 值流分析, 内存安全, 可配置连接, 图分析, 指针分析, 数据擦除, 源代码分析, 程序分析, 符号执行, 编译器技术, 请求拦截, 软件分析框架, 软件安全, 逆向工具, 静态分析