Converting a java Class file to Soot's Intermediate Representation Jimple.
Lets look at example to convert java files to Jimple. Here, I am using HelloWorld. java and convert it to class by using javac and Now i am converting HelloWorld.Class to Jimple file.
HelloWorld.Java Contains:
public class HelloWorld{
String output="";
static HelloWorld helloObj;
public HelloWorld(){
output ="Hello world";
}
public String printMessage(){
return output;
}
public static void main(String[] args)
{
helloObj = new HelloWorld();
System.out.println(helloObj.printMessage());
}
}
Before try to convert into jimple file make sure the class file (HelloWorld.Class) is in the same directory as command line or you set the class-path properly.
Now, to convert class file to Jimple type following on your command line:
>Java soot.Main -f J HelloWorld
(J can be replaced by jimple)
>Java soot.Main -f jimple HelloWorld
(if your classpath is not set)
>Java -cp soot-2.5.0.jar soot.Main -f -J HelloWorld
If you got errors Like could not load class file, pool error at Line 31 etc.
>Java -cp soot-2.5.0.jar soot.Main -f J -allow-phantom-refs HelloWorld
-allow-phantom-refs : This option will generate phantom class of error codes and command.
-f : represents the format for output
-J: represents the jimple format
HelloWorld: Java class file
-cp: Classpath
>Java -cp soot-2.5.0.jar soot.Main -f J -allow-phantom-refs HelloWorld
-allow-phantom-refs : This option will generate phantom class of error codes and command.
-f : represents the format for output
-J: represents the jimple format
HelloWorld: Java class file
-cp: Classpath
Normally, in command works as: JAVA [JAVA OPTIONS] SOOT[SOOT OPTIONS]
For result, go to soot directory where jar files are located, here soot automatically creates sootOutput directory and you can find HelloWorld.jimple file.
No comments:
Post a Comment