[Soot-list] Use SOOT to analyse Java library.
christian.grosse at comhem.se
christian.grosse at comhem.se
Thu Apr 9 19:27:48 EDT 2015
I tried this simple program:
public class Test
{
public static void main(String[] args)
{
String newargs[] = {
"-w",
"-include-all",
"-cp","C:\\Program Files (x86)\\Java\\jre1.8.0_31",
"-d", "c:\\Temp",
"-process-dir","C:\\Program Files (x86)\\Java\\jre1.8.0_31\\lib\\rt.jar",
"-process-dir","C:\\Program Files (x86)\\Java\\jre1.8.0_31\\lib\\jce.jar",
"-process-dir","C:\\Program Files (x86)\\Java\\jre1.8.0_31\\lib\\jsse.jar"};
soot.Main.main(newargs);
}
}
But after a while I get:
.
.
.
Transforming java.awt.SecondaryLoop...
Transforming java.awt.SequencedEvent$2...
Transforming java.awt.SplashScreen$1...
Transforming java.awt.SystemColor...
soot.SootMethodRefImpl$ClassResolutionFailedException: Class soot.dummy.InvokeDynamic doesn't have method updateSystemColors([]) : sun.awt.AWTAccessor$SystemColorAccessor; failed to resolve in superclasses and interfacesLooking in soot.dummy.InvokeDynamic which has methods []
at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:164)
at soot.SootMethodRefImpl.resolve(SootMethodRefImpl.java:109)
at soot.jimple.internal.AbstractInvokeExpr.getMethod(AbstractInvokeExpr.java:67)
at soot.jimple.validation.InvokeArgumentValidator.validate(InvokeArgumentValidator.java:34)
at soot.jimple.JimpleBody.validate(JimpleBody.java:117)
at soot.jimple.JimpleBody.validate(JimpleBody.java:102)
at soot.baf.BafBody.<init>(BafBody.java:63)
at soot.baf.Baf.newBody(Baf.java:560)
at soot.PackManager.convertJimpleBodyToBaf(PackManager.java:976)
at soot.PackManager.runBodyPacks(PackManager.java:932)
at soot.PackManager.runBodyPacks(PackManager.java:608)
at soot.PackManager.runBodyPacks(PackManager.java:507)
at soot.PackManager.runPacksNormally(PackManager.java:484)
at soot.PackManager.runPacks(PackManager.java:391)
at soot.Main.run(Main.java:244)
at soot.Main.main(Main.java:152)
at Test.main(Test.java:22)
/Christian G
From: Zhoulai
Sent: Thursday, April 09, 2015 6:10 PM
To: christian.grosse at comhem.se
Cc: SOOT mailing list
Subject: Re: [Soot-list] Use SOOT to analyse Java library.
Hi,
The right way to do these things can be found at
Soot Survivor's Guide p16-21,
Sect. 4 Soot as a stand-alone tool
Cheers,
Zhoulai
On Thu, Apr 9, 2015 at 8:56 AM, <christian.grosse at comhem.se> wrote:
Hello!
I have a couple of question about SOOT and the Java library.
How do I get SOOT to load & parse (so I can get Jimple bodies) for say the entire java 1.x library.
Do I have to supply SOOT with the classes (or source code) as arguments in the call to Main.main(args) (see code below)?
Do I have to create a main class to get it to work? Or can SOOT analyze all classes I provide as arguments to Main.main(args) call without a main class & method?
Example:
public class Main
{
public static void main(String[] args)
{
//TODO: Hook in with my own awesome transform.
//TODO: Create a main class ???
.
.
.
//call soot.
Main.main(args);
}
}
Best regards,
Christian G.
_______________________________________________
Soot-list mailing list
Soot-list at CS.McGill.CA
https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20150410/0afb0b47/attachment.html
More information about the Soot-list
mailing list