soot-oss/SootUp
GitHub: soot-oss/SootUp
对经典 Java 静态分析框架 Soot 的全面重构,提供现代化的 JVM 字节码分析基础设施,支持调用图生成、过程间数据流分析等核心能力。
Stars: 794 | Forks: 109
# SootUp 库
[](https://github.com/soot-oss/SootUp/actions/workflows/tests.yml) [](https://codecov.io/gh/soot-oss/SootUp) [](https://javadoc.io/doc/org.soot-oss/sootup.core) [](https://central.sonatype.com/artifact/org.soot-oss/sootup) [](https://scorecard.dev/viewer/?uri=github.com/soot-oss/SootUp)[](https://www.bestpractices.dev/projects/11242)
这里是 **SootUp** 项目的主页。
这是对优秀且历史悠久的静态分析框架 [Soot](https://github.com/soot-oss/soot) 的全面重构。
## 什么是 SootUp
- 将 JVM 字节码(以及其他输入!)转换为中间表示 Jimple。
- 提供 ClassHierarchy(类层次结构)生成
- 使用不同的算法/精度进行 CallGraph(调用图)生成
- 通过由 [Heros](https://github.com/Sable/heros) 支持的 IDE/IFDS 框架进行过程间数据流分析
- 在检索方法 Body 时应用简单的转换(参见 `BodyInterceptor`)
- 提供 Jimple IR 的解析和序列化。
## 入门指南
[文档](https://soot-oss.github.io/SootUp/) 和使用示例可在 [示例](https://github.com/soot-oss/SootUp-Examples) 中找到。
请查阅 [Javadoc](https://soot-oss.github.io/SootUp/apidocs)。
您有问题吗?欢迎发起 [讨论](https://github.com/soot-oss/SootUp/discussions)。
## SootUp 的改进
#### (与其前身 [Soot](https://github.com/soot-oss/soot) 相比。)
- 全新的改进 API(无全局变量/单例模式)
- 完全可并行化的架构
- 支持类的延迟加载(不再交错加载使用/依赖的类)
- 快速失败策略 - 在构建对象时进行输入验证
- 对 Bytecode 的全面 Java 21 支持
- 多视图(不再有单一的静态 Scene)
- 不可变的 Jimple IR 对象和图
## 欢迎改进 SootUp!
### 贡献
如需反馈和功能请求,最好创建相应的 [议题](../../issues)。
如有问题和需要澄清的地方,请使用 [讨论区](../../discussions)。
## 谁在使用 SootUp?
- **Team Atlanta**,[DARPA AI 网络挑战赛 (AIxCC) 的获胜者](https://aicyberchallenge.com/finals-winners-announcement/) 使用 **SootUp** 来改进他们的[可达性分析](https://arxiv.org/pdf/2509.14589)。
请通过填写[此表单](https://forms.gle/Cr6noNjM6XYLXiTZ7)让我们了解您是如何使用 SootUp 的。
## 出版物
[SootUp 论文](https://doi.org/10.1007/978-3-031-57246-3_13) 解释了更多细节以及 SootUp 背后的设计决策。
[预印本](/docs/assets/SootUp-paper.pdf) 也可获取。
如果您在研究工作中使用了 SootUp,请按如下格式引用:
```
@InProceedings{10.1007/978-3-031-57246-3_13,
author="Karakaya, Kadiray
and Schott, Stefan
and Klauke, Jonas
and Bodden, Eric
and Schmidt, Markus
and Luo, Linghui
and He, Dongjie",
editor="Finkbeiner, Bernd
and Kov{\'a}cs, Laura",
title="SootUp: A Redesign of the Soot Static Analysis Framework",
booktitle="Tools and Algorithms for the Construction and Analysis of Systems",
year="2024",
publisher="Springer Nature Switzerland",
address="Cham",
pages="229--247",
isbn="978-3-031-57246-3"
}
```
## 支持者
SootUp 的开发得到了德国研究基金会 (DFG) 以及
海因茨·尼克斯多夫研究所 (HNI) 的慷慨资助。
|
 |
[成为赞助者!](https://github.com/sponsors/soot-oss)
标签:CallGraph, DNS解析, IDE, IFDS, Jimple, JS文件枚举, JVM, Maven, Soot, SootUp, VPS部署, 中间表示, 代码转换, 可配置连接, 域名枚举, 开源项目, 漏洞验证, 程序分析, 类层次结构, 调用图生成, 软件分析, 静态分析框架