[Soot-list] Converting reflection code to static code

ASHISH MISHRA ashish123.mishragkp at gmail.com
Thu Feb 7 15:47:02 EST 2013


Hi all,

I understand how to use tamiflex to handle reflection using soot. i wish to
solve the problem(To some extent , since, exact solution could not be
computed.) using String analysis, pointer analysis and some other static
ways. My main concerns is -

Suppose I have  a code fragment say its original Program P

//
4String str= "someclassname"
5Class clazz = Class.forNmae(str);

 6Method mt=clazz.getMethod("execute", null);
7 mt.invoke(o , null);

//some other code.

I can analyze the argument passed to the dynamic class loading at line 5
using the String analysis and if its is a Constant string or it can be
tracked via some other means I can enrich this program P to some thing like

4String str= "someclassname"
5Class clazz = Class.forNmae(str);

 6Method mt=clazz.getMethod("execute", null);
7 mt.invoke(o , null);

someclass sc = new someclass();
sc.execute();

//some other code. say p'

And finally run Call Graph construction algorithm on P'

My first question is -

I am confused about where to add my transformation-
1)wjop - looks most promising ,as I am optimizing the source
2)cg
3wjtp

Secondly

Do I need to add  two different transformations ,
one to generate an On the fly Call graph with pointer analysis and String
analysis
and then apply the transformation from P to P' and then again generate a
Call graph again. i need a precise Call graph of whole application with
reflection information added by a side analysis like String , pointer and
other static analysis.

Is its possible to get a precise inter procedural dataflow analysis
independent of Call graph construction. I feel its not possible as they
both are interlinked.

Please help me on this.

-- 
Regards,
Ashish Mishra
Graduate Student,
Computer Science and Automation Department,IISc
Cell : +91-9611194714
Mailto : ashishmishra at csa.iisc.ernet.in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20130208/9f21029f/attachment.html 


More information about the Soot-list mailing list