<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">As a follow up, I manually checked the jimple files generated from the apk. And in "VolleyActivity$1.jimple ", I can clearly see the method body of onResponse(). That means there is no problem with jimple file, but why it is not parsed by soot (FlowDroid)?</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thanks,</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 18, 2015 at 1:43 PM, Xinxin Jin <span dir="ltr"><<a href="mailto:xinxinjin89@gmail.com" target="_blank">xinxinjin89@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Hi Eric,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Thanks for your reply. I checked all the reachable methods and found no place invoking onResponse and onErrorResponse.</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">The statement that invokes StringRequest() method is : </div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default"><font face="monospace, monospace"><b><com.android.volley.toolbox.StringRequest: void <init>(int,java.lang.String,com.android.volley.Response$Listener,com.android.volley.Response$ErrorListener)>( "<a href="http://www.google.com" target="_blank">http://www.google.com</a>", $r7, $r8)</b></font><br></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">Here parameters $r7, $r8 correspond to Response.Listener() and Response.ErrorListener(). Then I continued to track the definition of r7:</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><b>$r7 = new edu.ucsd.mytest.VolleyActivity$1</b></font><br></div><div class="gmail_default"><font face="arial, helvetica, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, helvetica, sans-serif">But there is no useful statement in</font><span style="font-family:arial,helvetica,sans-serif"> </span><span style="font-family:arial,helvetica,sans-serif">edu.ucsd.mytest.VolleyActivity$1 ....</span></div><div class="gmail_default"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div class="gmail_default"><span style="font-family:arial,helvetica,sans-serif">Any ideas ?</span></div><div class="gmail_default"><span style="font-family:arial,helvetica,sans-serif"><br></span></div><div class="gmail_default"><span style="font-family:arial,helvetica,sans-serif">Thank you a lot !! </span></div></div><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, Feb 18, 2015 at 11:47 AM, Bodden, Eric <span dir="ltr"><<a href="mailto:eric.bodden@sit.fraunhofer.de" target="_blank">eric.bodden@sit.fraunhofer.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Xinxin.<br>
<br>
I think the problem is that the bytecode's structure differs from the source code's. Although in the source the two anonymous subclasses of Listener resp. ErrorListener are lexically contained in the constructor call, they are not in the bytecode. Please inspect the call to StringRequest.<init>. You should see references the second and third parameter both being initialized with instances of classes such as Response.Listener$1. You have to inspect the bodies of the onResponse methods in those classes.<br>
<br>
Hope that helps,<br>
Eric<br>
<span><br>
> On 18.02.2015, at 18:21, Xinxin Jin <<a href="mailto:xinxinjin89@gmail.com" target="_blank">xinxinjin89@gmail.com</a>> wrote:<br>
><br>
> Hi all,<br>
><br>
> I have an application which calls new StringRequest()of Volley library:<br>
><br>
><br>
> StringRequest request = new StringRequest(url,<br>
> new Response.Listener() {<br>
> @Override<br>
> public void onResponse(Object response) {<br>
> Log.d(TAG, "response " + ((String) response).substring(0,500));<br>
> }<br>
> }, new Response.ErrorListener() {<br>
> @Override<br>
> public void onErrorResponse(VolleyError error) {<br>
</span>> Log.d(TAG, "error message");<br>
<span>> }<br>
> });<br>
><br>
><br>
> It contains two callbacks as its parameters: Response.Listener() and Response.ErrorListener().<br>
><br>
> When I parse reached methods of this application, it can only reach SootMethod StringRequest: <init>, but when I examine all the statements in this method, I cannot find bodies of the two registered listeners. Is there any way to get the method body of onResponse() ?<br>
><br>
> Thank you for your help !<br>
><br>
> --<br>
> Xinxin<br>
><br>
><br>
</span>> _______________________________________________<br>
> Soot-list mailing list<br>
> <a href="mailto:Soot-list@CS.McGill.CA" target="_blank">Soot-list@CS.McGill.CA</a><br>
> <a href="https://mailman.CS.McGill.CA/mailman/listinfo/soot-list" target="_blank">https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</a><br>
<br>
--<br>
Prof. Eric Bodden, Ph.D., <a href="http://sse.ec-spride.de/" target="_blank">http://sse.ec-spride.de/</a> <a href="http://bodden.de/" target="_blank">http://bodden.de/</a><br>
Head of Secure Software Engineering at Fraunhofer SIT, TU Darmstadt and EC SPRIDE<br>
Tel: <a href="tel:%2B49%206151%2016-75422" value="+4961511675422" target="_blank">+49 6151 16-75422</a> Fax: <a href="tel:%2B49%206151%20869-127" value="+496151869127" target="_blank">+49 6151 869-127</a><br>
Room B5.11, Fraunhofer SIT, Rheinstraße 75, 64295 Darmstadt<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div><font face="arial, helvetica, sans-serif">Xinxin</font></div>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><font face="arial, helvetica, sans-serif">Xinxin</font></div>
</div>