Skip to content

A new version of Soot with a completely overhauled architecture

License

Notifications You must be signed in to change notification settings

adityaanand7/SootUp

 
 

Repository files navigation

SootUp library Java CI with Maven codecov javadoc

This is the home of the SootUp project. A complete overhaul of the good, old static analysis framework Soot.

What is SootUp

  • Transforms JVM bytecode (and other inputs!) to the intermediate representation Jimple.
  • Provides ClassHierarchy generation
  • CallGraph generation with different algorithms/precisions
  • Inter-procedural Data-flow Analysis with the IDE/IFDS framework enabled by Heros
  • Applies/Enables simple transformations on retrieving a methods Body (see BodyInterceptor)
  • Provides serialization of the Jimple IR.

Getting started

Documentation and usage examples are available on Github pages. Check the Javadocs. Do you have questions? Feel free to start a Discussion.

SootUp improvements

(compared to its predecessor Soot.)

  • New Improved API (without Globals/Singletons)
  • Fully-Parallelizable Architecture
  • Enables lazyloading of classes (no interleaved loading of used/dependent classes anymore)
  • Fail early strategy - input validation while constructing/building objects
  • Up-to-Date (i.e. Java8!) Sourcecode Frontend
  • Full Java 21 Support for Bytecode
  • Multiple Views (Scenes)
  • Full-Diff Support for Classes (across different View instances)
  • Immutable Jimple IR Objects and Graphs
  • Incremental Updates of Program Representation

SootUp Roadmap

See our Todo list.

Feel free to improve Soot!

Feedback and Feature Requests

For feedback and feature requests, best create appropriate issues.

Collaboration

You want to collaborate? Please read our coding guidelines and the contributors notice.

Supporters

The development of SootUp is financed by generous support from the German Research Foundation (DFG) and the Heinz Nixdorf Institute (HNI).

Become a sponsor!

About

A new version of Soot with a completely overhauled architecture

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.7%
  • Other 0.3%