test Symbolic Execution-03-Soot - A Java optimization framework

发布时间:2024年01月13日

拓展阅读

开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息)

开源 Junit performance rely on junit5 and jdk8+.(java 性能测试框架。性能测试。压测。测试报告生成。)

test fuzz-01-模糊测试(Fuzz Testing)

Soot

重要提示:Soot现已由SootUp接替!

在2022年12月,我们正式发布了SootUp,这是Soot的一个版本,具有完全经过重新设计的、更模块化、可测试、可维护和可用的架构。如果您想要开始一个新的程序分析项目,请查看一下。

Soot现已支持Java 9模块!
尝试并参与Soot的Java 9最新开发。

已经测试并且可用的有:

  • 自动模块(从模块路径中的jar自动创建的模块)
  • 命名模块
  • 爆炸式模块
  • 模块化的jar文件
  • 在Soot的ModuleScene中解析模块
  • Spark

目前尚未实现的有:

  • 匿名模块(混合模块路径和类路径)
  • 多模块的jar文件

什么是Soot?

Soot是一个Java优化框架。

它提供了四种用于分析和转换Java字节码的中间表示:

  1. Baf:一个简化的字节码表示,易于操作。
  2. Jimple:一个适用于优化的带类型的3地址中间表示。
  3. Shimple:Jimple的SSA变体。
  4. Grimp:适用于反编译和代码检查的Jimple的聚合版本。

详细信息请参阅 https://soot-oss.github.io/soot。

如何开始使用Soot?

我们在wiki上提供了一些关于Soot的文档,还有许多关于Soot的教程

有关详细信息,请考虑查阅Soot的JavaDoc和选项文档。

将Soot包含到您的项目中

每次提交到主分支(master)时,都会构建一个Soot发布版本。

您可以通过Maven、Gradle、SBT等工具使用以下坐标将Soot作为依赖项引入项目:

<dependencies>
  <dependency>
    <groupId>org.soot-oss</groupId>
    <artifactId>soot</artifactId>
    <version>4.3.0</version>
  </dependency>
</dependencies>

您还可以获取主分支的旧版本构建。

可以在Maven Central上找到所有版本的构建列表。

每次提交到开发分支(develop)时,都会构建一个Soot SNAPSHOT版本。

您可以通过Maven、Gradle、SBT等工具使用以下坐标将Soot作为依赖项引入项目:

<dependencies>
  <dependency>
    <groupId>org.soot-oss</groupId>
    <artifactId>soot</artifactId>
    <version>4.4.0-SNAPSHOT</version>
  </dependency>
</dependencies>

<repositories>
  <repository>
      <id>sonatype-snapshots</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
          <enabled>false</enabled>
      </releases>
  </repository>
</repositories>

您还可以获取开发分支的旧版本构建。

可以在Maven Central上找到所有版本的构建列表。

如何获取没有Maven的Soot?
我们推荐使用Maven来使用Soot,您可以直接获取Soot的最新发行构建。您也可以直接获取Soot的最新SNAPSHOT构建。

soot-<RELEASE>-jar-with-dependencies.jar 文件是一个包含所有必需库的全功能文件。

soot-<RELEASE>.jar 文件仅包含Soot,允许您手动选择依赖项,按需加载。如果您不想处理依赖关系,我们建议使用前者。

在这里插入图片描述

文章来源:https://blog.csdn.net/ryo1060732496/article/details/135564281
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。