[Soot-list] Identify virtual-call targets and library callee

Marc-André Laverdière marc-andre.laverdiere-papineau at polymtl.ca
Fri Jul 25 11:31:16 EDT 2014


Hi Haipeng,

Call graph construction is a difficult beast. Soot has a lot of options
that may also impact the call graph construction algorithm. It also
affects the class hierarchy, which is also going to affect the call graph.

First, are you using Spark? Which settings?
Everything besides CHA relies on 'new' statements in the program to
determine which type could a given variable have. So if your application
has things like dependency injection, then your life is even harder.

Are you using phantom classes? No bodies for excluded? Are you providing
all the jars in the Soot classpath? These things will affect the outcome.

I've been working on JEE applications and I resort to a lot of tricks to
try to make the call graph smaller. This results in a lot of missing
edges, which need to be compensated somehow. I've generally compensated
by using the declared SootMethod in the InvokeExpr but that's not
perfect. Flowdroid is doing the same BTW.

Regards,

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 07/24/2014 08:14 PM, Haipeng Cai wrote:
> Hi All,
> 
> I am doing a static interprocedural dependence analysis with Soot for
> Java programs and having two difficulties:
> 
> 1. How do I safely identify all possible callees at a call site,
> especially virtual call site?
> 
> 2. How should I discern, among all the callees identified above, library
> callees from application callees?
> 
> I have tried the CallGraph class, which seems to be quite incomplete; I
> also noticed that there is a method "IsJDKLibraryCall" in SootMethod
> class, which only tells JDK library calls from others, though. 
> 
> Any thoughts and advises are appreciated.
> Thanks,
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA <mailto:Soot-list at CS.McGill.CA>
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> <https://mailman.cs.mcgill.ca/mailman/listinfo/soot-list>
> 
> 
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list
> 


More information about the Soot-list mailing list