[Soot-list] Enable Explicit Taint Propogation in Soot-Infoflow

Suresh Rangaswamy suresh1317 at iiitd.ac.in
Wed Oct 22 07:49:35 EDT 2014


Hi Steven,

Thank you for the quick response.

I have read the paper and I understood that it is supposed to detect it,
but there may be some configuration that I am missing because in the
analysis it is not detecting the above source to sink flow.

I am using the *soot-Infoflow* directly instead of *soot-infoflow-android*,

I am analyzing JAR file.

PFA, EasyTaintWrapperSource.txt, SourcesAndSink.txt and output.txt.

which I am using to run my analysis.

Regards
Suresh Rangaswamy
(M) +91-9711154493
(M.Tech Information Security)
cerc.iiitd.ac.in
about.me/suresh301190
<http://iiitd.ac.in>

On Wed, Oct 22, 2014 at 4:53 PM, Steven Arzt <Steven.Arzt at cased.de> wrote:

> Hi Suresh,
>
>
>
> FlowDroid is a data flow tracker, so tracking explicit data flows is what
> the tool was originally built for. What exactly is your question? Did you
> read the paper or technical report? Did you have a look at our wiki (
> https://github.com/secure-software-engineering/soot-infoflow-android/wiki
> )?
>
>
>
> Best regards,
>
>   Steven
>
>
>
>
>
> M.Sc. M.Sc. Steven Arzt
>
> Secure Software Engineering Group (SSE)
>
> European Center for Security and Privacy by Design (EC SPRIDE)
>
> Mornewegstraße 32
>
> D-64293 Darmstadt
>
> Phone: +49 61 51 16-75426
>
> Fax: +49 61 51 16-72118
>
> eMail: steven.arzt at ec-spride.de
>
> Web: http://sse.ec-spride.de
>
>
>
>
>
>
>
> *Von:* soot-list-bounces at CS.McGill.CA [mailto:
> soot-list-bounces at CS.McGill.CA] *Im Auftrag von *Suresh Rangaswamy
> *Gesendet:* Mittwoch, 22. Oktober 2014 13:10
> *An:* soot-list at CS.McGill.CA
> *Betreff:* [Soot-list] Enable Explicit Taint Propogation in Soot-Infoflow
>
>
>
> Hi,
>
>
>
> How can we enable the explicit tainting in soot-infoflow if its possible.
>
>
>
> 1. void foo(){
>
> 2.         int x = 0, y = 9;
>
> 3.         try{
>
> 4.                     BufferedReader is = new BufferedReader(new
> InputStreamReader(System.in));
>
>
>
> 5.                     x = Integer.parseInt(is.readLine());
>
>
>
> 6.                     if(x == 5){
>
>
>
> 7.                                System.out.println(y);
>
> 8.                     }
>
>
>
> 9.         }catch(IOException e){
>
> 10.                   e.printStackTrace();
>
> 11.       }
>
>
>
> In the example I want the flow from 5 -> 6 -> 7 be detected by the
> infoflow.
>
>
> Regards
>
> Suresh Rangaswamy
>
> (M) +91-9711154493
>
> (M.Tech Information Security)
>
> cerc.iiitd.ac.in
>
> about.me/suresh301190
>
> [image: Das Bild wurde vom Absender entfernt.] <http://iiitd.ac.in>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20141022/d23e5282/attachment-0001.html 
-------------- next part --------------
# Packages to include in the analysis
^android.
^java.
^org.apache.http.

<java.util.Stack: java.lang.Object push(java.lang.Object)>

<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>
-<java.util.Map: void clear()>

<java.util.TreeMap: void <init>(java.util.Map)>
<java.util.HashMap: void <init>(java.util.Map)>
<java.util.WeakHashMap: void <init>(java.util.Map)>
<java.util.ConcurrentHashMap: void <init>(java.util.Map)>
<java.util.LinkedHashMap: void <init>(java.util.Map)>

<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>
<java.util.Map: java.lang.Object putAll(java.util.Map)>

<java.util.List: boolean add(java.lang.Object)>
<java.util.List: void add(int,java.lang.Object)>
<java.util.List: boolean addAll(java.util.Collection)>
<java.util.List: boolean addAll(int,java.util.Collection)>
-<java.util.List: void clear()>
<java.util.List: java.util.Iterator iterator()>()

<java.util.Iterator: java.lang.Object next()>
<java.util.Iterator: java.lang.Object next()>

<java.util.ArrayList: void <init>(java.util.Collection)>
<java.util.ArrayList: java.util.Iterator iterator()>()

<java.util.LinkedList: void <init>(java.util.Collection)>

<java.util.Set: boolean add(java.lang.Object)>
<java.util.Set: boolean addAll(java.util.Collection)>
-<java.util.Set: void clear()>

<java.util.Collection: boolean add(java.lang.Object)>
<java.util.Collection: boolean addAll(java.util.Collection)>
-<java.util.Collection: void clear()>

<java.util.Vector: void <init>(java.util.Collection)>
<java.util.Vector: void add(int,java.lang.Object)>
<java.util.Vector: boolean add(java.lang.Object)>
<java.util.Vector: boolean addAll(java.util.Collection)>
<java.util.Vector: void addElement(java.lang.Object)>
-<java.util.Vector: void clear()>

<java.io.StringReader: void <init>(java.lang.String)>

<java.util.Queue: boolean add(java.lang.Object)>
<java.util.Queue: boolean offer(java.lang.Object)>
<java.util.Queue: java.lang.Object remove()>
<java.util.Queue: java.lang.Object poll()>
<java.util.Queue: java.lang.Object element()>
<java.util.Queue: java.lang.Object peek()>

<java.lang.StringBuilder: void <init>(java.lang.String)>
<java.lang.StringBuilder: java.lang.StringBuilder append(boolean)>
<java.lang.StringBuilder: java.lang.StringBuilder append(char)>
<java.lang.StringBuilder: java.lang.StringBuilder append(char[])>
<java.lang.StringBuilder: java.lang.StringBuilder append(char[],int,int)>
<java.lang.StringBuilder: java.lang.StringBuilder append(double)>
<java.lang.StringBuilder: java.lang.StringBuilder append(float)>
<java.lang.StringBuilder: java.lang.StringBuilder append(int)>
<java.lang.StringBuilder: java.lang.StringBuilder append(long)>
<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>
<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>
<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.CharSequence)>
<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.CharSequence,int,int)>
<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.StringBuffer)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,boolean)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,char)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,char[])>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,char[],int,int)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,double)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,float)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,int)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,long)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,java.lang.Object)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,java.lang.String)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,java.lang.CharSequence)>
<java.lang.StringBuilder: java.lang.StringBuilder insert(int,java.lang.CharSequence,int,int)>

<java.lang.StringBuffer: void <init>(java.lang.String)>
<java.lang.StringBuffer: java.lang.StringBuffer append(boolean)>
<java.lang.StringBuffer: java.lang.StringBuffer append(char)>
<java.lang.StringBuffer: java.lang.StringBuffer append(char[])>
<java.lang.StringBuffer: java.lang.StringBuffer append(char[],int,int)>
<java.lang.StringBuffer: java.lang.StringBuffer append(double)>
<java.lang.StringBuffer: java.lang.StringBuffer append(float)>
<java.lang.StringBuffer: java.lang.StringBuffer append(int)>
<java.lang.StringBuffer: java.lang.StringBuffer append(long)>
<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>
<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>
<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.CharSequence)>
<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.CharSequence,int,int)>
<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.StringBuffer)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,boolean)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,char)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,char[])>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,char[],int,int)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,double)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,float)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,int)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,long)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,java.lang.Object)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,java.lang.String)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,java.lang.CharSequence)>
<java.lang.StringBuffer: java.lang.StringBuffer insert(int,java.lang.CharSequence,int,int)>

<java.lang.String: void <init>(byte[])>
<java.lang.String: void <init>(byte[],int,int)>
<java.lang.String: void <init>(byte[],int,int,java.lang.String)>
<java.lang.String: void <init>(byte[],java.lang.String)>
<java.lang.String: void <init>(char[])>
<java.lang.String: void <init>(char[],int,int)>
<java.lang.String: void <init>(int[],int,int)>
<java.lang.String: void <init>(java.lang.String)>
<java.lang.String: void <init>(java.lang.StringBuffer)>
<java.lang.String: void <init>(java.lang.StringBuilder)>

<java.lang.String: java.lang.String valueOf(boolean)>
<java.lang.String: java.lang.String valueOf(char)>
<java.lang.String: java.lang.String valueOf(char[])>
<java.lang.String: java.lang.String valueOf(char[],int,int)>
<java.lang.String: java.lang.String valueOf(double)>
<java.lang.String: java.lang.String valueOf(float)>
<java.lang.String: java.lang.String valueOf(int)>
<java.lang.String: java.lang.String valueOf(long)>
<java.lang.String: java.lang.String valueOf(java.lang.Object)>

<java.lang.String: java.lang.String concat(java.lang.String)>

<java.lang.String: java.lang.String format(java.util.Locale,java.lang.String,java.lang.Object[])>
<java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>

<java.lang.String: char[] toCharArray()>

<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>

<java.lang.Byte: java.lang.Byte valueOf(byte)>
<java.lang.Byte: java.lang.Byte valueOf(java.lang.String)>
<java.lang.Byte: java.lang.Byte valueOf(java.lang.String,int)>
<java.lang.Byte: long parseByte(java.lang.String)>
<java.lang.Byte: long parseByte(java.lang.String,int)>

<java.lang.Integer: java.lang.String toBinaryString(int)>
<java.lang.Integer: java.lang.String toHexString(int)>
<java.lang.Integer: java.lang.String toOctalString(int)>

<java.lang.Integer: void <init>(int)>
<java.lang.Integer: void <init>(java.lang.String)>
<java.lang.Integer: int parseInt(java.lang.String)>
<java.lang.Integer: int parseInt(java.lang.String,int)>
<java.lang.Integer: java.lang.Integer valueOf(int)>
<java.lang.Integer: java.lang.Integer valueOf(java.lang.String)>
<java.lang.Integer: java.lang.Integer valueOf(java.lang.String,int)>
<java.lang.Integer: java.lang.Integer toString(int)>
<java.lang.Integer: java.lang.Integer toString(int,int)>

<java.lang.Short: java.lang.Short valueOf(short)>
<java.lang.Short: java.lang.Short valueOf(java.lang.String)>
<java.lang.Short: java.lang.Short valueOf(java.lang.String,int)>
<java.lang.Short: long parseShort(java.lang.String)>
<java.lang.Short: long parseShort(java.lang.String,int)>

<java.lang.Long: void <init>(long)>
<java.lang.Long: void <init>(java.lang.String)>
<java.lang.Long: long parseLong(java.lang.String)>
<java.lang.Long: long parseLong(java.lang.String,int)>
<java.lang.Long: java.lang.Long valueOf(long)>
<java.lang.Long: java.lang.Long valueOf(java.lang.String)>
<java.lang.Long: java.lang.Long valueOf(java.lang.String,int)>
<java.lang.Long: java.lang.String toString(long)>
<java.lang.Long: java.lang.String toString(long,int)>

<java.lang.Float: void <init>(float)>
<java.lang.Float: void <init>(java.lang.String)>
<java.lang.Float: float parseFloat(java.lang.String)>
<java.lang.Float: java.lang.Float valueOf(float)>
<java.lang.Float: java.lang.Float valueOf(java.lang.String)>
<java.lang.Float: java.lang.String toString(float)>

<java.lang.Double: void <init>(double)>
<java.lang.Double: void <init>(java.lang.String)>
<java.lang.Double: double parseDouble(java.lang.String)>
<java.lang.Double: java.lang.Double valueOf(double)>
<java.lang.Double: java.lang.Double valueOf(java.lang.String)>
<java.lang.Double: java.lang.String toString(double)>

<java.lang.Boolean: void <init>(boolean)>
<java.lang.Boolean: void <init>(java.lang.String)>
<java.lang.Boolean: java.lang.Boolean valueOf(boolean)>
<java.lang.Boolean: java.lang.Boolean valueOf(java.lang.String)>
<java.lang.Boolean: java.lang.String toString(boolean)>

<java.lang.Character: void <init>(char)>
<java.lang.Character: java.lang.Boolean valueOf(char)>
<java.lang.Character: char forDigit(int,int)>

<java.lang.Error: void <init>(java.lang.String)>

<java.lang.Exception: void <init>(java.lang.String)>

<java.lang.ref.Reference: void <init>()>
<java.lang.ref.WeakReference: void <init>(java.lang.Object)>

<java.math.BigDecimal: void <init>(int)>

<java.math.BigInteger: void <init>(byte[])>
<java.math.BigInteger: void <init>(int,byte[])>
<java.math.BigInteger: void <init>(java.lang.String)>
<java.math.BigInteger: void <init>(java.lang.String,int)>
<java.math.BigInteger: java.math.BigInteger valueOf(long)>

<java.io.FileInputStream: void <init>(java.io.File)>

<java.text.MessageFormat: void <init>(java.lang.String)>
<java.text.MessageFormat: void <init>(java.lang.String,java.util.Locale)>
<java.text.MessageFormat: java.lang.String format(java.lang.String,java.lang.Object[])>

<java.net.URI: void <init>(java.lang.String)>
<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String)>
<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)>
<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>
<java.net.URI: void <init>(java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>
<java.net.URI: java.net.URI create(java.lang.String)>

<java.net.URL: void <init>(java.lang.String)>
<java.net.URL: void <init>(java.lang.String,java.lang.String,int,java.lang.String)>
<java.net.URL: void <init>(java.lang.String,java.lang.String,int,java.lang.String,java.net.URLStreamHandler)>
<java.net.URL: void <init>(java.lang.String,java.lang.String,java.lang.String)>
<java.net.URL: void <init>(java.net.URL,java.lang.String)>
<java.net.URL: void <init>(java.net.URL,java.lang.String,java.net.URLStreamHandler)>

<java.net.HttpURLConnection: void setRequestMethod(java.lang.String)>

<java.util.Collections: java.util.List synchronizedCollection(java.util.Collection)>
<java.util.Collections: java.util.List synchronizedList(java.util.List)>
<java.util.Collections: java.util.List synchronizedMap(java.util.Map)>
<java.util.Collections: java.util.List synchronizedSet(java.util.Set)>
<java.util.Collections: java.util.List synchronizedSortedMap(java.util.SortedMap)>
<java.util.Collections: java.util.List synchronizedSortedSet(java.util.SortedSet)>

<java.util.Collections: java.util.List unmodifiableCollection(java.util.Collection)>
<java.util.Collections: java.util.List unmodifiableList(java.util.List)>
<java.util.Collections: java.util.List unmodifiableMap(java.util.Map)>
<java.util.Collections: java.util.List unmodifiableSet(java.util.Set)>
<java.util.Collections: java.util.List unmodifiableSortedMap(java.util.SortedMap)>
<java.util.Collections: java.util.List unmodifiableSortedSet(java.util.SortedSet)>

<java.util.Collections: java.util.Set singleton(java.lang.Object)>
<java.util.Collections: java.util.List singletonList(java.lang.Object)>
<java.util.Collections: java.util.Map singletonMap(java.lang.Object,java.lang.Object)>

<android.content.ContentValues: void put(java.lang.String,java.lang.Integer)>

<android.content.Intent: void <init>(android.content.Context,java.lang.Class)>
<android.content.Intent: android.content.Intent addFlags(int)>
<android.content.Intent: android.content.Intent setFlags(int)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,boolean)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,byte)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,char)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,short)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,long)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,int)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,float)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,double)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.String)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.CharSequence)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Parcelable)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Parcelable[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.io.Serializable)>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,boolean[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,byte[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,short[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,char[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,int[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,long[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,float[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,double[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.String[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,java.lang.CharSequence[])>
<android.content.Intent: android.content.Intent putExtra(java.lang.String,android.os.Bundle)>
<android.content.Intent: android.content.Intent putExtras(android.content.Intent)>
<android.content.Intent: android.content.Intent putExtras(android.os.Bundle)>

~<android.content.ContextWrapper: android.content.Context getBaseContext()>

<android.content.IntentFilter: void addAction(java.lang.String)>

<android.database.MatrixCursor: void addRow(java.lang.Object[])>

<android.os.Bundle: void putBoolean(java.lang.String,boolean)>

<org.apache.http.message.BasicNameValuePair: void <init>(java.lang.String,java.lang.String)>

<org.apache.http.entity.StringEntity: void <init>(java.lang.String)>
<org.apache.http.entity.StringEntity: void <init>(java.lang.String,java.nio.charset.Charset)>
<org.apache.http.entity.StringEntity: void <init>(java.lang.String,org.apache.http.entity.ContentType)>
<org.apache.http.entity.StringEntity: void <init>(java.lang.String,java.lang.String)>
<org.apache.http.entity.StringEntity: void <init>(java.lang.String,java.lang.String,java.lang.String)>

<java.util.Arrays: java.util.List asList(java.lang.Object[])>
<java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>

<java.util.UUID: void <init>(long,long)> 

~<android.app.Activity: android.view.View findViewById(int)>
~<android.app.Activity: void setContentView(int)>
~<android.app.Activity: void setContentView(android.view.View)>
<android.widget.EditText: android.text.Editable getText()>
<android.text.Editable: java.lang.String toString()>

<javax.servlet.ServletResponse: java.io.PrintWriter getWriter()>

# Exclude the ServerSocket stuff
# ~<java.net.ServerSocket: java.net.Socket accept()>
# ~<java.net.Socket: java.io.InputStream getInputStream()>

<java.nio.ByteBuffer: java.nio.ByteBuffer put(byte)>
<java.nio.ByteBuffer: java.nio.ByteBuffer put(byte[])>
<java.nio.ByteBuffer: java.nio.ByteBuffer put(byte[],int,int)>
<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>
<java.nio.ByteBuffer: java.nio.ByteBuffer put(int,byte)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putChar(char)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putChar(int,char)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putDouble(double)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putDouble(int,double)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putFloat(float)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putFloat(int,float)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putInt(int)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putInt(int,int)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putLong(long)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putLong(int,long)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putShort(short)>
<java.nio.ByteBuffer: java.nio.ByteBuffer putShort(int,short)>
-------------- next part --------------
<java.io.InputStreamReader: void <init> -> _SOURCE_
<java.io.BufferedReader: java.lang.String readLine()> -> _SOURCE_

<java.io.PrintStream: void println(int)> -> _SINK_
<java.io.PrintStream: void println(java.lang.String)> -> _SINK_
-------------- next part --------------
[main] INFO soot.jimple.infoflow.taintWrappers.EasyTaintWrapper - Loaded wrapper entries for 52 classes and 4 exclusions.
[main] INFO soot.jimple.infoflow.Infoflow - Resetting Soot...
Warning: java.lang.NoClassDefFoundError is a phantom class!
Warning: java.lang.StringBuffer is a phantom class!
Warning: java.lang.Boolean is a phantom class!
Warning: java.lang.Long is a phantom class!
Warning: java.lang.Integer is a phantom class!
Warning: java.lang.Short is a phantom class!
Warning: java.lang.Float is a phantom class!
Warning: java.lang.Double is a phantom class!
Warning: java.lang.Throwable is a phantom class!
Warning: java.lang.Class is a phantom class!
Warning: java.lang.Character is a phantom class!
Warning: java.lang.AssertionError is a phantom class!
Warning: java.lang.Byte is a phantom class!
Warning: java.lang.Void is a phantom class!
Warning: java.lang.ClassFormatError is a phantom class!
Warning: java.lang.InstantiationError is a phantom class!
Warning: java.lang.Runnable is a phantom class!
Warning: java.lang.ref.Finalizer is a phantom class!
Warning: java.lang.IncompatibleClassChangeError is a phantom class!
Warning: java.lang.NoSuchFieldError is a phantom class!
Warning: java.lang.StackOverflowError is a phantom class!
Warning: java.lang.Thread is a phantom class!
Warning: java.lang.IllegalAccessError is a phantom class!
Warning: java.lang.ArrayStoreException is a phantom class!
Warning: java.lang.NoSuchMethodError is a phantom class!
Warning: java.lang.LinkageError is a phantom class!
Warning: java.lang.ExceptionInInitializerError is a phantom class!
Warning: java.lang.InternalError is a phantom class!
Warning: java.lang.VerifyError is a phantom class!
Warning: java.io.Serializable is a phantom class!
Warning: java.lang.ArrayIndexOutOfBoundsException is a phantom class!
Warning: java.lang.ClassCastException is a phantom class!
Warning: java.lang.ArithmeticException is a phantom class!
Warning: java.lang.IndexOutOfBoundsException is a phantom class!
Warning: java.lang.AbstractMethodError is a phantom class!
Warning: java.lang.Object is a phantom class!
Warning: java.lang.ThreadDeath is a phantom class!
Warning: java.lang.String is a phantom class!
Warning: java.lang.UnknownError is a phantom class!
Warning: java.lang.ClassCircularityError is a phantom class!
Warning: java.lang.Cloneable is a phantom class!
Warning: java.lang.NegativeArraySizeException is a phantom class!
Warning: java.lang.UnsatisfiedLinkError is a phantom class!
Warning: java.lang.Error is a phantom class!
Warning: java.lang.OutOfMemoryError is a phantom class!
Warning: java.lang.IllegalMonitorStateException is a phantom class!
Warning: java.lang.RuntimeException is a phantom class!
Warning: java.lang.NullPointerException is a phantom class!
Warning: java.lang.ClassNotFoundException is a phantom class!
[main] INFO soot.jimple.infoflow.Infoflow - Basic class loading done.
Warning: java.io.InputStream is a phantom class!
Warning: java.util.ArrayList is a phantom class!
Warning: java.io.BufferedReader is a phantom class!
Warning: java.util.List is a phantom class!
Warning: java.io.PrintStream is a phantom class!
Warning: java.io.InputStreamReader is a phantom class!
Warning: java.lang.System is a phantom class!
Warning: java.io.IOException is a phantom class!
Warning: java.util.Iterator is a phantom class!
Warning: java.io.Reader is a phantom class!
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
[main] INFO soot.jimple.infoflow.Infoflow - Callgraph has 5 edges
[main] INFO soot.jimple.infoflow.Infoflow - Looking for sources and sinks...
[main] INFO soot.jimple.infoflow.Infoflow - Source lookup done, found 2 sources and 2 sinks.
[main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper hits: 0
[main] INFO soot.jimple.infoflow.Infoflow - Taint wrapper misses: 0
[main] INFO soot.jimple.infoflow.Infoflow - IFDS problem with 197 forward and 3 backward edges solved, processing results...
[main] WARN soot.jimple.infoflow.Infoflow - No results found.


More information about the Soot-list mailing list