Information Technology Reference
In-Depth Information
Input
.jimple
.jimp
.dex
.java
.xml
.shimple
.shimp
.grimple
.grimp
.apk
.class
.baf
.b
.jasmin
Produce Jimple 3-address IR
Analyze, Optimize and Tag
Output
.jimple
.jimp
.dex
.java
.xml
.shimple
.shimp
.grimple
.grimp
.apk
.class
.baf
.b
.jasmin
Fig. 1. Input and Output Formats in Soot
of whole-program packs run. They do not target single methods or classes, but
the whole so-called scene containing all classes that have been loaded. Which
classes are loaded depends on Soot's command line options. Consult the online
documentation for details [24]. Usually, you only need to enable whole program
mode if your analysis requires a complete call graph. If not, you can skip these
phases by leaving the whole-program-mode option disabled which can consider-
ably improve performance.
The first whole-program pack to run is the cg pack which creates the callgraph.
Soot implements various callgraph construction algorithms. In this tutoral, we
will use SPARK [25] for maximum precision. In some cases, less precise, but faster
algorithms might be more appropriate. Once the callgraph is done, three more
whole-program packs (whole-jimple-transformation, whole-jimple-optimization,
whole-jimple-annotation) are executed, followed by a sequence of single method-
packs (jimple-transformation, jimple-optimization, jimple-annotation).
For our purposes, we leave the whole-porgram-mode disabled and add a new
phase to the jimple-transformation pack jtp which places our code directly after
 
Search WWH ::




Custom Search