Tutorials for soot
The following guide exists but is quite outdated. We welcome updates to it.
- A Survivor's Guide to Java Program Analysis with Soot (by Arni Einarsson and Janus Dam Nielsen)
A few uses of Soot
- Using Soot as a Program Optimizer
- Using Soot and TamiFlex to analyze DaCapo
- Implementing an intra-procedural data-flow analysis in Soot
- Instrumenting Android Apps with Soot
Using Soot as a framework for inter-procedural program analysis
Soot allows you to implement inter-procedural program analyses in a template-driven style using a number of modular add-on frameworks:
- Use Inter-procedural program analysis with Soot and Heros to implement a distributive program analysis based on IFDS/IDE.
Using Soot as a command-line tool
Using Soot as a compiler framework
- Creating a Class File from Scratch
- Adding attributes to class files (Basic)
- Adding attributes to class files (Advanced)
- Adding profiling instructions to applications
- Using Soot with custom entry points
- Whole program Devirtualization Optimizations
- Java's Invokedynamic
NOTE: If you find any bugs in those tutorials (or other parts of Soot) please help us out by reporting them in our issue tracker.