Git Product home page Git Product logo

sootup's Introduction

SootUp library Java CI with Maven codecov

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/dependend classes anymore)
  • Fail early strategy - input validation while constructing/building objects
  • Up-to-Date (i.e. Java8!) Sourcecode Frontend
  • Full Java 17 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 feedbacks 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!

sootup's People

Contributors

anddann avatar anonymousanalyst avatar atulpundir88 avatar bastihav avatar bhermann avatar cbruegg avatar ceclin avatar dependabot[bot] avatar ericbodden avatar github-actions[bot] avatar hasitha1990 avatar jmpersch avatar jonasklauke avatar juliandolby avatar kadirayk avatar kaustubhkelkar avatar linghuiluo avatar marcmil avatar marcusna avatar mbenz89 avatar niorgai avatar rajatkhanna1994 avatar slimming-fat avatar stevenarzt avatar stschott avatar swissiety avatar t89 avatar thebesttv avatar wangzun66 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.