<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Sprechblasentext Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.SprechblasentextZchn
        {mso-style-name:"Sprechblasentext Zchn";
        mso-style-priority:99;
        mso-style-link:Sprechblasentext;
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Manas,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>As Karim already wrote, please try to use the new default ASM frontend and not Coffi. There is no support for newer language constructs in Coffi as Coffi has been deprecated.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Best regards,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>  Steven<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Manas Thakur [mailto:manasthakur17@gmail.com] <br><b>Gesendet:</b> Mittwoch, 10. Februar 2016 13:43<br><b>An:</b> Steven Arzt<br><b>Cc:</b> soot-list@CS.McGill.CA<br><b>Betreff:</b> Re: [Soot-list] Analyzing rt.jar<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Hi Steven,<o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>The arguments being passed to Soot are as follows:<o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'>“-cp . -pp -w -coffi -f J -keep-line-number -no-bodies-for-excluded -keep-bytecode-offset -keep-offset -p jb use-original-names -allow-phantom-refs -print-tags -process-dir rt.jar”</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Then I am adding a phase to wjtp, followed by calling the analysis for a custom entry point:<o:p></o:p></p></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>Options.v().parse(sootArgs);</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>SootClass c = Scene.v().forceResolve(className, SootClass.BODIES);</span><o:p></o:p></p></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>c.setApplicationClass();</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'>Scene.v().loadNecessaryClasses();</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>SootMethod m = c.getMethod(methodName, paramTypeList);</span><o:p></o:p></p></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>List&lt;SootMethod&gt; entryPoints = new ArrayList&lt;SootMethod&gt;();</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'>entryPoints.add(m);</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'>Scene.v().setEntryPoints(entryPoints);</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Courier New"'>PackManager.v().runPacks();</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>I am constructing the paramTypeList by including the corresponding type from soot.*Type.v() to paramTypeList (above). Further, I am using soot.RefType.v(“java.lang.Object”) for the parameter. It works for Object.equals, but not for PrintStream.print (even though both methods are similar in the sense that they are not overriding any methods, etc.).<o:p></o:p></p></div></div></div></div></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div><div><p class=MsoNormal>Manas<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal>On 10-Feb-2016, at 6:01 PM, Steven Arzt &lt;<a href="mailto:Steven.Arzt@cased.de">Steven.Arzt@cased.de</a>&gt; wrote:<o:p></o:p></p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Manas,</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Can you please give your complete Soot command line or configuration options?</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Best regards,</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp; Steven</span><o:p></o:p></p></div><div><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>&nbsp;</span><o:p></o:p></p></div><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span class=apple-converted-space><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>&nbsp;</span></span><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'><a href="mailto:soot-list-bounces@cs.mcgill.ca">soot-list-bounces@CS.McGill.CA</a> [<a href="mailto:soot-list-bounces@CS.McGill.CA">mailto:soot-list-bounces@CS.McGill.CA</a>]<span class=apple-converted-space>&nbsp;</span><b>Im Auftrag von<span class=apple-converted-space>&nbsp;</span></b>Manas Thakur<br><b>Gesendet:</b><span class=apple-converted-space>&nbsp;</span>Mittwoch, 10. Februar 2016 13:29<br><b>An:</b><span class=apple-converted-space>&nbsp;</span>Karim Ali<br><b>Cc:</b><span class=apple-converted-space>&nbsp;</span><a href="mailto:soot-list@cs.mcgill.ca">soot-list@CS.McGill.CA</a><br><b>Betreff:</b><span class=apple-converted-space>&nbsp;</span>Re: [Soot-list] Analyzing rt.jar</span><o:p></o:p></p></div></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><p class=MsoNormal>Hello all<o:p></o:p></p></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>While analyzing rt.jar with custom entry points (as given in the soot wiki), I am getting different errors. For some methods, the analysis is successful (e.g., Object.equals); for some of them, I am getting “active body not found error (e.g., PrintStream.print) on using “getActiveBody” on those methods. Using “retrieveActiveBody” doesn’t help either; it throws errors like “This operation requires resolving level BODIES but java.io.PrintStream is at resolving level SIGNATURES”.<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Any suggestions? The jdk version is 7.<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Manas<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>On 08-Feb-2016, at 2:26 PM, Karim Ali &lt;<a href="mailto:karim.ali@cased.de"><span style='color:purple'>karim.ali@cased.de</span></a>&gt; wrote:<o:p></o:p></p></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><div><div><p class=MsoNormal>The Coffi frontend is not able to process the recent JDKs. You should use the default ASM one.<o:p></o:p></p></div><div><div><div><p class=MsoNormal><br>-&nbsp;Karim<o:p></o:p></p></div></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>On Feb 8, 2016, at 09:49, Manas Thakur &lt;<a href="mailto:manasthakur17@gmail.com"><span style='color:purple'>manasthakur17@gmail.com</span></a>&gt; wrote:<o:p></o:p></p></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><div><div><p class=MsoNormal>Hi Karim,<o:p></o:p></p></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>I am trying to analyze jdk8 (u45) on OS X. I am using the older “-coffi” frontend from soot-nightly-build. Further, I am keeping rt.jar in a separate directory and giving its address in the “-process-dir” option.<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Manas<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>On 08-Feb-2016, at 1:13 PM, Karim Ali &lt;<a href="mailto:karim.ali@cased.de"><span style='color:purple'>karim.ali@cased.de</span></a>&gt; wrote:<o:p></o:p></p></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><div><div><p class=MsoNormal>Hello Manas,<o:p></o:p></p></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Which JDK (version, OS, etc) are you analyzing? It seems it’s an OS X one as well. For some older version of Java on OS X, there are some additional jars you need to add on the soot classpath to be able to properly analyze rt.jar.<o:p></o:p></p></div><div><div><div><p class=MsoNormal><br>-&nbsp;Karim<o:p></o:p></p></div></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><div><p class=MsoNormal>On Feb 8, 2016, at 06:53, Manas Thakur &lt;<a href="mailto:manasthakur17@gmail.com"><span style='color:purple'>manasthakur17@gmail.com</span></a>&gt; wrote:<o:p></o:p></p></div></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><div><div><div><p class=MsoNormal>Hello all,<o:p></o:p></p></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>While analyzing rt.jar (with the -process-dir) option, I am getting the following error:<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>java.lang.RuntimeException: no superclass for java.lang.CharSequence &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; │apple/laf/JRSUIConstants$Property.class</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>&nbsp; &nbsp; &nbsp; &nbsp; at soot.SootClass.getSuperclass(SootClass.java:767) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><o:p></o:p></p></div></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>…</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>If I use the released version of soot (soot-2.5.0), I get the following error:<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>java.lang.RuntimeException: Trying to create interface invoke expression for non-interface type: java.util.Map$Entry Us│apple/laf/JRSUIConstants$SegmentPosition.class</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>e JVirtualInvokeExpr or JSpecialInvokeExpr instead! &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│apple/laf/JRSUIConstants$ScrollBarPart.class</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>&nbsp; &nbsp; &nbsp; &nbsp; at soot.jimple.internal.JInterfaceInvokeExpr.&lt;init&gt;(JInterfaceInvokeExpr.java:46) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;│apple/laf/JRSUIConstants$PropertyEncoding.class</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>&nbsp; &nbsp; &nbsp; &nbsp; at soot.jimple.Jimple.newInterfaceInvokeExpr(Jimple.java:433)</span><o:p></o:p></p></div></div></div><div><div><p class=MsoNormal><span style='font-family:"Courier New"'>...</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Can anyone suggest what may be wrong?<o:p></o:p></p></div></div><div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Regards,<o:p></o:p></p></div></div><div><div><p class=MsoNormal>Manas<o:p></o:p></p></div></div></div><div><p class=MsoNormal>_______________________________________________<br>Soot-list mailing list<br><a href="mailto:Soot-list@cs.mcgill.ca"><span style='color:purple'>Soot-list@CS.McGill.CA</span></a><br><a href="https://mailman.cs.mcgill.ca/mailman/listinfo/soot-list"><span style='color:purple'>https://mailman.CS.McGill.CA/mailman/listinfo/soot-list</span></a><o:p></o:p></p></div></div></blockquote></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div></div></div></blockquote></div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></div></body></html>