<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Re: [Soot-list] Can Stubdroid handle interfaces?</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Hi Steven,</p>
<p>Thanks for your reply.</p>
<p>I'm not sure how to use StubDroid for making summaries.</p>
<p>As I mentioned before, my app's snapshot is here.<br>
<font size="-2"> $r5 = virtualinvoke $r3.<java.net.URL:
java.net.URLConnection openConnection()>();<br>
$r6 = virtualinvoke $r5.<java.net.URLConnection:
java.io.InputStream getInputStream()>();<br>
<b>interfaceinvoke
$r4.<org.xmlpull.v1.XmlPullParser: void
setInput(java.io.InputStream,java.lang.String)>($r6,
"UTF-8");</b><br>
[...]<br>
$r7 = interfaceinvoke
$r4.<org.xmlpull.v1.XmlPullParser: java.lang.String
nextText()>();</font></p>
<p><br>
In the 3rd line, I want to propagate taints $r6 to $4. So I tried
making summary of "org.xmlpull.v1.XmlPullParser" , and performed
the following command.</p>
<p><font size="-2">MacBookPro-3:FlowDroid hatayama$ java -Xms10g
-Xmx12g -cp
guava-18.0.jar:soot-trunk.jar:soot-infoflow.jar:soot-infoflow-android.jar:soot-infoflow-summaries.jar:slf4j-api-1.7.5.jar:slf4j-simple-1.7.5.jar:axml-2.0.jar
soot.jimple.infoflow.methodSummary.Main android10.jar
./summaries/ org.xmlpull.v1.XmlPullParserFactory.java <br>
SLF4J: Class path contains multiple SLF4J bindings.<br>
SLF4J: Found binding in
[<a class="moz-txt-link-freetext" href="jar:file:/Users/hatayama/Desktop/FlowDroid/soot-trunk.jar!/org/slf4j/impl/StaticLoggerBinder.class">jar:file:/Users/hatayama/Desktop/FlowDroid/soot-trunk.jar!/org/slf4j/impl/StaticLoggerBinder.class</a>]<br>
SLF4J: Found binding in
[<a class="moz-txt-link-freetext" href="jar:file:/Users/hatayama/Desktop/FlowDroid/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class">jar:file:/Users/hatayama/Desktop/FlowDroid/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class</a>]<br>
SLF4J: See <a class="moz-txt-link-freetext" href="http://www.slf4j.org/codes.html#multiple_bindings">http://www.slf4j.org/codes.html#multiple_bindings</a> for
an explanation.<br>
SLF4J: Actual binding is of type
[org.slf4j.impl.SimpleLoggerFactory]<br>
Warning: org.xmlpull.v1.XmlPullParserFactory.java is a phantom
class!<br>
Warning: java.lang.invoke.LambdaMetafactory is a phantom class!<br>
Warning: java.lang.ref.Finalizer is a phantom class!<br>
Analyzing class org.xmlpull.v1.XmlPullParserFactory.java<br>
Class summaries for org.xmlpull.v1.XmlPullParserFactory.java
done in 0.001833 seconds for 0 summaries<br>
Class org.xmlpull.v1.XmlPullParserFactory.java done.<br>
[main] INFO
soot.jimple.infoflow.methodSummary.postProcessor.InfoflowResultPostProcessor
- Removed 0 flows in favour of more precise ones<br>
Done.</font></p>
<p>But nothing was outputted. Could you show me what is my mistake?</p>
<p>Best regards,<br>
Kazuki.</p>
<br>
<div class="moz-cite-prefix">On 2016/09/07 5:25, Steven Arzt wrote:<br>
</div>
<blockquote
cite="mid:147bd343-34e3-442d-b4d5-eabdb795ea48@email.android.com"
type="cite">
<p dir="ltr">Hi,</p>
<p dir="ltr">That should work as long as you have a StubDroid
summary for at least one class that implements the interface.
The taint wrapper should then use a union of all summaries of
implementations. If that doesn't work, it's a bug and we need to
fix it.</p>
<p dir="ltr">Best regards,<br>
Steven</p>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sep 6, 2016 1:20 PM, Kazuki Hatayama
<a class="moz-txt-link-rfc2396E" href="mailto:komakomaillusion@gmail.com"><komakomaillusion@gmail.com></a> wrote:<br
type="attribution">
<blockquote class="quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
<p> </p>
</div>
Hi all,<br>
<br>
I'm faced with the similar problem (<a
moz-do-not-send="true"
href="https://github.com/secure-software-engineering/soot-infoflow-android/issues/125">https://github.com/secure-software-engineering/soot-infoflow-android/issues/125</a>).
<br>
<br>
here is the snapshot of my app.<br>
<font size="-1"> $r5 = virtualinvoke
$r3.<java.net.URL: java.net.URLConnection
openConnection()>();<br>
$r6 = virtualinvoke
$r5.<java.net.URLConnection: java.io.InputStream
getInputStream()>();<br>
<b>interfaceinvoke
$r4.<org.xmlpull.v1.XmlPullParser: void
setInput(java.io.InputStream,java.lang.String)>($r6,
"UTF-8");</b><br>
[...]<br>
$r7 = interfaceinvoke
$r4.<org.xmlpull.v1.XmlPullParser: java.lang.String
nextText()>();<br>
</font><br>
In 3rd line, I want to propagate taints $r6 to $4. The above
web page says Stubdroid can handle this situation.<br>
<br>
But Stubdroid seems to be applicable to only classes, not
interfaces.<br>
<br>
Can really Stubdroid handle this situation?<br>
<br>
Best regards,<br>
Kazuki.<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
</body>
</html>