Questions tagged [soot]

Soot is an open source Java optimization framework.

Soot is an open source Java optimization framework that provides different intermediate representations for Java bytecode. Besides optimization, Soot can be used for static analyses and bytecode manipulation.

GitHub home page @ github.com
Legacy home page @ sable.mcgill.ca

131 questions
1
vote
1 answer

Function Graph using Soot

taking a look at the tutorials in Github on how to run Soot on Eclipse to create graphs, it can be easily understood how to make a Control Flow Graph of a class using the existing example code. However with this already existing example every…
PM2
  • 11
  • 1
1
vote
1 answer

Running the Soot Jimple Optimizer on a class

Is it possible to run the JOP optimizer on a SootClass? I'd like to optimize a class that I've generated manually with Jimple statements through the Java API. As far as I understand, the optimizer is only run at resolve-time, so not every time after…
gandreadis
  • 3,004
  • 2
  • 26
  • 38
1
vote
1 answer

Output class file for a class object created in Soot

For a test generation task, I need to generate .class files programmatically. I'm using the Soot framework to generate the code. Let's say I've created a class through Scene.v().makeSootClass("Test") and added some methods to it. How can I now…
gandreadis
  • 3,004
  • 2
  • 26
  • 38
1
vote
1 answer

Changing the value of a "static final" field

Let's say I have a class Foo(){ public final static int bar = -1; } disassembled bytecode will look something like this super public class Foo version 51:0 { public static final Field bar:I = int -1; public Method "":"()V" …
User1291
  • 7,664
  • 8
  • 51
  • 108
1
vote
1 answer

jimple representation from ``Class`` instance

I need to hot-swap method implementations of various classes (the new implementations of which I do not know until somewhen during runtime and which may change again). ByteBuddy can do that easily, but it (apparently) cannot do much to a method…
User1291
  • 7,664
  • 8
  • 51
  • 108
1
vote
1 answer

SOOT class loading -- what is a 'level'?

From here: The design of coffi requires that in order to bring some class C up to level N, you must first bring all classes that C references up to level N-1. In order to know which classes C references, you need to bring C up to level N-1. What…
User1291
  • 7,664
  • 8
  • 51
  • 108
1
vote
1 answer

How to create a control-flow graph with Soot?

For a while I have been struggling with creating a control-flow graph with Soot and I kinda got lost in its tutorials. Rather than using Soot as an Eclipse plugin, I have been trying to use Soot as a library or API. What I want to do is, I have a…
Ekin
  • 407
  • 1
  • 6
  • 17
1
vote
0 answers

Soot version of Jasmin failing to assemble Jasmin assembly files

I have both the version of Jasmin 2.4 from the Jasmin SourceForge and the version of Jasmin 2.4 from the Soot project (at sable.mcgill.ca, labeled "jasminclasses"), and the Soot version (which I need) does not seem to be working properly. I have…
Loduwijk
  • 1,950
  • 1
  • 16
  • 28
1
vote
1 answer

Exception when trying to instrument source code by WALA: java.lang.ClassFormatError: StackMapTable format error: wrong attribute size

I have a simple program like this: package tests; import java.util.Scanner; public class TestSum { public static void main(String[] args) { int sum = 0; System.out.print("Please enter starting i: "); int i = new…
xtiger
  • 1,446
  • 2
  • 15
  • 33
1
vote
1 answer

Andersen's Pointer Analysis with Soot

I am interested in building Andersen's pointer analysis for Java with Soot, a compiler infrastructure framework. Following are the papers in this area. I am unable to identify a proper approach to start and program this analysis for Java. Can anyone…
1
vote
1 answer

Soot android-jars error

I am trying to analyze android apk's using Soot. However, I get an an error saying invalid option: android-jars along with a CompilationDeathException: Option parse error. Is this due to the wrong path of android jars or soot(2.5.0)? To launch soot,…
user782400
  • 1,617
  • 7
  • 30
  • 51
1
vote
0 answers

Why soot could not load classfile?

In order to link the library with my application I trying to decompile the jar using soot, but got the error: java -jar ./soot-2.5.0.jar -f dava -cp $JRE_HOME/lib/rt.jar:$JRE_HOME/lib/jce.jar:. -process-dir ./library-jarfile.jar Soot started on…
1
vote
1 answer

Combined Forward and Backward analysis in soot

I want to perform Data Flow analysis in Soot. But the nature of my analysis is that it will perform one iteration of Forward analysis and then one iteration of Backward analysis using the dataflow values computed in the Forward analysis. These two…
1
vote
0 answers

Soot Library Field already exists

I want to code the example in "Adding profiling instructions to applications" tutorial so I write the program as the tutorial said. But when I run it I got this error: [Thread-3] ERROR heros.solver.CountingThreadPoolExecutor - Worker thread…
jody abbot
  • 303
  • 2
  • 15
1
vote
0 answers

"heros.solver.CountingThreadPoolExecutor - Worker thread execution failed: null Exceptions" when running nightly build soot-trunk

I was converting apk file to jimple files and then converting they back to the .dex file immediately. But I cannot do the second the step successfully. Command line used: java -Xmx4g -jar soot-trunk.jar soot.Main -p cg.spark…
Xia Zhang
  • 11
  • 3
1 2
3
8 9